gpt4 book ai didi

javascript - 在 Typescript 中,是否可以使 Javascript 对象的属性名称接受多个值?

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

例如,如果我创建一个新的对象类型:

interface NEWOBJECT {
name: {};
}

是否有可能使 name 可以是 name1 或 name2,这样我就可以用 任一个 名称作为 NEWOBJECT 的属性名称来创建 NEOBJECT?
像这样:

var object1: NEWOBJECT = {name1: {}};
var object2: NEWOBJECT = {name2: {}};

谢谢

最佳答案

type NEWOBJECT = {
[N in 'name1' | 'name2']?: {};
}

不幸的是,这仍然允许两个属性存在或省略,所以我实际上会遵循使用 uniun 类型的更精确的方法

interface NEWOBJECT1 {
name1: {};
}

interface NEWOBJECT2 {
name2: {};
}

type NEWOBJECT = NEWOBJECT1 | NEWOBJECT2;

确保您拥有最新的 TypeScript。

关于javascript - 在 Typescript 中,是否可以使 Javascript 对象的属性名称接受多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41871151/

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