gpt4 book ai didi

javascript - 是否可以使用 typescript 映射类型来创建接口(interface)的非函数属性类型?

转载 作者:行者123 更新时间:2023-11-29 20:26:56 25 4
gpt4 key购买 nike

所以我正在查看 Typescript 的映射类型。是否可以创建一个包装另一种类型的接口(interface),从原始类型中删除函数?例如:

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
};

谢谢!

最佳答案

这来自 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>>;

谢谢大家!

关于javascript - 是否可以使用 typescript 映射类型来创建接口(interface)的非函数属性类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59129805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com