所以我在看Typescript的映射类型。是否可以创建一个接口来包装另一个类型,从而从原始类型中删除函数?例如:
interface Person{
name: string,
age: number,
speak(): void,
}
type Data<T> = ?
const dataPerson: Data<Person> ={
name: "John",
age: 20
//Speak removed because it is a function
};谢谢!
发布于 2019-12-02 05:52:59
这是来自typescript文档(https://www.typescriptlang.org/docs/handbook/advanced-types.html#conditional-types)和作品:
type NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T];
type Data<T> = Pick<T, NonFunctionPropertyNames<T>>;谢谢大家!
发布于 2019-12-02 05:30:57
{ [K in T]: T[K] extends Function ? undefined : T[K] }为此,您可以使用映射的条件类型。
https://stackoverflow.com/questions/59129805
复制相似问题