2015-04-17 4 views
2

Я смотрел учебник машинописного текста, который использует версию 1.0.0. Был образец класса, используя параметр общественного покоя в конструкторе:Параметры общественного отдыха в конструкторе

class XYZ { 
    constructor(public firstname: string, public lastname: string, ...public emails: Array<string>) { 
    } 
} 

Как это сделать в версии 1.5.0? Если я определить класс, как это, я получил несколько ошибок:

type.ts(14,75): error TS1005: '=' expected. 
type.ts(14,81): error TS1005: ',' expected. 
type.ts(14,88): error TS1005: '=' expected. 
type.ts(14,96): error TS1109: Expression expected. 

Благодарности Марио

ответ

6

There is an oversight in the spec, но параметр остальные не могут быть государственными или частными. Вот как исправить код:

class XYZ { 
    public emails: string[]; 
    constructor(public firstName: string, public lastName: string, ...emails: string[]) { 
     this.emails = emails; 
    } 
} 
+1

Это должно быть 'public emails: string []', чтобы избежать доступа члена к типу 'any'. – Fenton