gpt4 book ai didi

Typescript 接口(interface)通用属性名称

转载 作者:行者123 更新时间:2023-12-04 15:54:53 28 4
gpt4 key购买 nike

假设我们有两个变量

const x='property1'
const y='property2'

我们有函数

function foo<key extends keyof MapInterface>(name: key, props: (MapInterface[key]))

这个界面应该是这样的

interface MapInterface{
'property1':any;
'property2':any;
}

是否可以通过调用变量 x,y 来一般地创建接口(interface)

interface MapInterface{
x:any; //return 'property1':any;
y:any; //return 'property2':any;
}

最佳答案

是的,您可以从 TypeScript 2.7 开始执行此操作,使用 constant-named properties , 在拉取请求中介绍 Microsoft/TypeScript#15473 .您唯一缺少的是您需要使用 computed property syntax (属性名称必须用括号括起来):

const x = 'property1'
const y = 'property2';

interface MapInterface {
[x]: any;
[y]: any;
}

declare const mapInt: MapInterface;
mapInt[x]; // works
mapInt[y]; // works
mapInt.property1; // also works
mapInt.property2; // also works

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

关于Typescript 接口(interface)通用属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52226506/

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