gpt4 book ai didi

arrays - 来自数组类型的 Typescript 接口(interface)

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

我需要强制一个数组具有一组特定的值,这些值应该是我界面的键。我可以用

强制数组
type SomeProperties = ['prop1', 'prop2', 'prop3'];

但我不知道如何强制接口(interface)具有这些属性。我试过类似的东西

type MyInterface = {
[key in keyof SomeProperties]: string;
}

但显然数组的键只是数字所以我的界面变成了

interface MyInterface {
0: string;
1: string;
2: string;
}

而不是想要的界面

interface MyInterface {
prop1: string;
prop2: string;
prop3: string;
}

您知道在 Typescript 中是否有实现此目的的方法吗?

这很有用,因为我需要迭代某些属性以“克隆”一个对象,而且我还需要轻松访问这些属性。在类型和接口(interface)中重复属性对我来说有点脆弱。

最佳答案

如您所见,您尝试访问的字符串不是 SomeProperties,而是元素>一些属性

您可以使用 indexed access operator此处:如果 KT 的键(或键的并集),则 T[K] 是属性类型(或并集)属性类型)对应于访问 TK 键。

元组和数组接受 number 作为键类型,因此您想使用 SomeProperties[number] 为您提供联合 "prop1"|"prop2 “|”prop3“:

type SomeProperties = ['prop1', 'prop2', 'prop3'];

type MyInterface = {
[key in SomeProperties[number]]: string;
}

const myInterface: MyInterface = {
prop1: 'this',
prop2: 'works',
prop3: 'now'
}

希望对您有所帮助;祝你好运!

关于arrays - 来自数组类型的 Typescript 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45607685/

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