Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以使用typescript映射类型生成接口的非函数属性类型?_Javascript_Typescript_Interface_Mapped Types - Fatal编程技术网

Javascript 是否可以使用typescript映射类型生成接口的非函数属性类型?

Javascript 是否可以使用typescript映射类型生成接口的非函数属性类型?,javascript,typescript,interface,mapped-types,Javascript,Typescript,Interface,Mapped Types,所以我在看Typescript的映射类型。是否可以创建一个接口来封装另一个从原始类型中删除函数的类型?例如: 接口人{ 名称:string, 年龄:数字,, 发言:无效, } 类型数据=? constdataperson:Data={ 姓名:约翰, 年龄:20 //删除Speak,因为它是一个函数 }; 谢谢 { [K in T]: T[K] extends Function ? undefined : T[K] } 您可以使用映射的条件类型进行此操作。这来自typescript文档,适用

所以我在看Typescript的映射类型。是否可以创建一个接口来封装另一个从原始类型中删除函数的类型?例如:

接口人{ 名称:string, 年龄:数字,, 发言:无效, } 类型数据=? constdataperson:Data={ 姓名:约翰, 年龄:20 //删除Speak,因为它是一个函数 }; 谢谢

  { [K in T]: T[K] extends Function ? undefined : T[K] }

您可以使用映射的条件类型进行此操作。

这来自typescript文档,适用于:

类型NonFunctionPropertyNames={[K in keyof T]:T[K]扩展函数?never:K}[keyof T]; 类型数据=拾取;
谢谢大家

这对我来说不太管用;考虑使用undefined而不是never将意味着属性仍然需要是对象的一部分,但它需要是未定义的值