gpt4 book ai didi

arrays - 带有angular2的 typescript 中的对象类型数组

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

在我的角度应用程序中,我想以下面的方式使用一组 id 和角色的对象

let userRole: Array<...> = [
{ id: 1, name: 'Admin' },
{ id: 2, name: 'Super Admin' },
{ id: 2, name: 'User' },
{ id: 2, name: 'Watcher' }
];

但是我很困惑需要填写什么来代替 ...

Array < Object >Array <Any>

试验 1:

var role = {
id: number;
name: string;
};

然后 Array <role>但它给出了错误

试验 2: 添加不同的类文件

角色.ts

export class Role {
constructor(
public id: number,
public name: string
) { }
}

并添加到我的文件中

import { Role }      from './role';

export class HeroFormComponent {

let userRole: Array<Role> = [
{ id: 1, name: 'Admin' },
{ id: 2, name: 'Super Admin' },
{ id: 2, name: 'User' },
{ id: 2, name: 'Wacher' }
];

但是报错

错误:语法错误:意外的严格模式保留字

最佳答案

您的第一个也是最好的选择是简单地没有类型注释:

let userRole = [
{ id: 1, name: 'Admin' },
{ id: 2, name: 'Super Admin' },
{ id: 2, name: 'User' },
{ id: 2, name: 'Watcher' }
];

userRole 的推断类型将是 Array<{ id: number, name: string }> .

如果你出于某种原因真的想要一个类型注解,你可以这样写

let userRole: { id: number, name: string }[] = [ ...

let userRole: Array<{ id: number, name: string }> = [ ...

这两种语法在行为上是相同的。

如果你要经常使用这个类型,你可能想为它创建一个接口(interface),这样你就可以在其他地方重用这个名字:

interface Role {
id: number;
name: string;
}

现在你可以写了

let userRole: Role[] = [ ...

在类中声明初始化字段时,不使用 varlet :

export class HeroFormComponent {

userRole = [
{ id: 1, name: 'Admin' },
{ id: 2, name: 'Super Admin' },
{ id: 2, name: 'User' },
{ id: 2, name: 'Wacher' }
];

再次在这里,您可以挑选并选择您想要的类型注释。

关于arrays - 带有angular2的 typescript 中的对象类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37982409/

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