为什么我的Angular模板会抛出这个Typescript错误?

时间:2017-07-04 23:10:20

标签: angular typescript interface

我正在Angular 4建立一个Typescript 2.3.4项目。我无法弄清楚下面的代码有什么问题。

IDialog界面

export interface IDialog{
    cancellable?: boolean,     

    inputs?: Array<{label: string, value?: any, description?: string}|string>
    message: string
    title?: string,
    type?: DialogInputTypes // <- an Enum
}

SampleComponent.ts

  public dialog:IDialog = {
    cancellable:false,
    title:'Dialog Title',
    message:'This is a modal dialog',
    type:DialogInputTypes.button,
    inputs:[
      {label:'OK', value:'OK'},
      {label:'Cancel', value:'Cancel'}
    ]
  };

SampleComponent.html

<input *ngFor="let input of dialog.inputs" [value]="input.value">
                                                    ^^^^^^^^^^^^

编译器抛出此错误:

  

Angular:标识符&#39;值&#39;没有定义。 <anonymous>不包含此类成员

我刚刚使用Angular 2Typescript 2.0升级,之前没有出现此错误。

为什么会抛出此错误?也许它与IDialog.inputs被定义为数组或字符串的事实有关,并且在编译时编译器无法知道哪些形状输入具有。如果我从界面中删除|string,则错误消失。

更重要的是,我不知道如何修复我的代码。

2 个答案:

答案 0 :(得分:0)

绝对是您的项目配置 如果像这样

你的代码完全正常

&#13;
&#13;
http://localhost:8080/PsiNavigator/chat
&#13;
&#13;
&#13;

我使用的是Angular 4.0.2 Typescript 2.2.2 我修改了以便更具体

答案 1 :(得分:0)

从VS代码中禁用角度扩展包和角度语言服务插件。

我有类似的问题,这解决了它。