gpt4 book ai didi

javascript - 如何根据对象的属性创建接口(interface)?

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:33 25 4
gpt4 key购买 nike

我正在使用最新的 TypeScript 和 Angular,并且我有一个对象:

const obj: ObjInterface = {
prop1: 1,
prop2: 2,
prop3: '3'
}

我还有基于该对象的接口(interface):

interface ObjInterface {
prop1: number;
prop2: number;
prop3: string;
}

是否可以创建仅由 obj 的属性组成的数组接口(interface)?

const array: SomeInterface = ['prop1', 'prop2', 'prop3']; // OK
const array: SomeInterface = ['prop1', 'prop2', 'prop4']; // error

最佳答案

您可以使用keyof 运算符创建一个类型的键数组

interface ObjInterface {
prop1: number;
prop2: number;
prop3: string;
}
const array: Array<keyof ObjInterface> = ['prop1', 'prop2', 'prop3']; // OK
const array2: Array<keyof ObjInterface> = ['prop1', 'prop2', 'prop4']; // error

注意这将是一个编译时错误,在运行时,如果您在类型系统之外冒险或使用类型断言,您可以在数组中包含不同的字符串。

关于javascript - 如何根据对象的属性创建接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50211121/

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