Object literal的属性隐式具有'any []'类型 - Angular 2

时间:2016-12-27 07:42:19

标签: angular

我最近将角度2升级为稳定版本&突然,我开始在webpack观察者Object literal's property 'avatars' implicitly has an 'any[]' type.中收到此错误。以下是给出该错误的行:private selectedContact = {'jcf': {'avatars': [], 'fullname': ''}, meta: []};它为meta提供相同的错误。

1 个答案:

答案 0 :(得分:14)

随着新的打字稿更新出现新的规则和标志。其中一个标志是noImplicitAny标志。这样可以确保不会像这样初始化变量:

let avatars = [];

您可以使用以下命令将tsconfig.json更改为不再将此标记为错误:

{
    noImplicitAny: false
}

或者您可以创建代表您的selectedContact

的界面/类
export interface Contact {
    jcf: ContactDetail;
    meta: any[];
}

另一个界面:

export interface ContactDetail {
    avatars: any[];
    fullname: string;
}

现在,您可以为selectedContact属性分配Contact接口:

private selectedContact: Contact = {...};

或者,这不是很好,您可以明确地将其分配给any[]

let avatars: any[] = [];