gpt4 book ai didi

TypeScript:我可以声明一个接口(interface)可以有任意数量的进一步属性吗?

转载 作者:行者123 更新时间:2023-12-02 17:37:48 24 4
gpt4 key购买 nike

是否可以在 TypeScript 中表达“此接口(interface)的实例有一个名为‘num’的数字,一个名为‘func’的函数,并且可能有任意数量的未指定名称的字符串类型的属性”? 我想它可能看起来像这样:

interface MyInterface {
num: number;
func: Function;
*: string;
}

您可能想告诉我这是糟糕的 API 设计,但我正在为第 3 方库编写定义文件,我无法更改它:-(。

最佳答案

最接近的语法如下:

interface MyInterface {
[index: string]: any;
num: number;
func: Function;
}

var a: MyInterface = {
num: 123,
func: function () {},
prop1: 'Hello',
prop2: 'World'
};

必须使用类型“any”,因为属性“num”和“func”不是字符串:

While index signatures are a powerful way to describe the array and 'dictionary' pattern, they also enforce that all properties match their return type.

来源:TS Handbook .

关于TypeScript:我可以声明一个接口(interface)可以有任意数量的进一步属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597284/

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