gpt4 book ai didi

typescript - 如果动态添加,是否可以在 TypeScript 中声明对象中属性的类型?

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

我有一个这样的方法。

private getStuff(data: string[]) : CertainType[] { ... }

我认为以字典(C# 风格)的形式输出比数组更有意义。据我的 google-foo 告诉我,我应该使用一个对象并将内容放入其中,并将 ID 作为字段名称。所以不是:

const things: Thing[]; ...
things = [];
output.push(thingy);
console.log(things[3]);

我这样做:

const stuff: any; ...
stuff = { };
stuff[3] = stuffy;
console.log(things[3]);

所以方法的签名改成这样

private getStuff(data: string[]) : any { ... }

一切正常但是。我喜欢 TypeScript 中的半硬类型变量并且来自 C# 我坚信通过提前(看似)挑剔(当然不在 PO 范围内)来避免很多问题。

由于事先不知道属性的数量,也不知道它们的 ID,我想知道 any 是否是最接近的类型设置,或者是否有与 C# 语法相对应的东西:

Dictionary<string, Thing> dicky;

最佳答案

如果您需要一个可以由任何字符串索引的对象,但该对象中的所有值都是特定类型,您需要一个具有索引签名的类型。

这可以写成

const stuff: Record<string, Thingy> = {};

或者,更详细但等效:

const stuff: { [index: string]: Thingy } = {};

关于typescript - 如果动态添加,是否可以在 TypeScript 中声明对象中属性的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55806454/

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