如何使用Typescript为构造函数中的数组赋值?

时间:2016-08-06 15:21:48

标签: typescript

以下是我的尝试:

class PhraseService

    phrasePosShortNames: [{ id: number, name: string }];
    phrasePosNames = [
    {
        id: 0,
        longName: '#',
        shortName: '#'
    },
    {
        id: 1,
        longName: 'Noun',
        shortName: '#'
    },
    {
        id: 2,
        longName: 'Verb',
        shortName: 'V'
    }
    ];
    constructor( ) {

        this.phrasePosShortNames = this.phrasePosNames.map(item => {
            id: item.id,
            name: item.longName
        })
    }

但这给了我一个错误:

  

严重级代码描述项目文件行抑制状态   错误TS2322类型'void []'不能分配给'[{id:number;   name:string; }]”。 'void []'

类型中缺少属性'0'

有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:3)

this.phrasePosNames.map(item => {
    return {
      id: item.id,
      name: item.longName
    };
});

类型应该是

{ id: number, name: string }[]

Array<{ id: number, name: string }>

我会定义一个接口,这会使代码更具可读性。