小编典典

如何定义对象数组?

all

我在 TypeScript 中创建一个对象数组:

 userTestStatus xxxx = {
    "0": { "id": 0, "name": "Available" },
    "1": { "id": 1, "name": "Ready" },
    "2": { "id": 2, "name": "Started" }
 };

有人能告诉我如何正确声明它的类型吗?是否可以内联或我需要两个定义?

我希望xxx用类型声明替换 ,以便稍后如果我userTestStatus[3].nammme错误地使用了类似的东西,TypeScript 会提醒我。


阅读 220

收藏
2022-04-04

共1个答案

小编典典

您最好使用本机数组而不是具有类似数字属性的对象字面量,以便编号(以及许多其他数组函数)现成可用。

您在这里寻找的是您的数组的内联接口定义,它定义了该数组中的每个元素,无论是最初存在还是后来引入:

let userTestStatus: { id: number, name: string }[] = [
    { "id": 0, "name": "Available" },
    { "id": 1, "name": "Ready" },
    { "id": 2, "name": "Started" }
];

userTestStatus[34978].nammme; // Error: Property 'nammme' does not exist on type [...]

如果您立即使用值初始化数组,则不需要显式类型定义;TypeScript 可以从初始赋值中自动推断出大多数元素类型:

let userTestStatus = [
    { "id": 0, "name": "Available" },
    ...
];

userTestStatus[34978].nammme; // Error: Property 'nammme' does not exist on type [...]
2022-04-04