我正在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 2
从Typescript 2.0
升级,之前没有出现此错误。
为什么会抛出此错误?也许它与IDialog.inputs被定义为数组或字符串的事实有关,并且在编译时编译器无法知道哪些形状输入具有。如果我从界面中删除|string
,则错误消失。
更重要的是,我不知道如何修复我的代码。
答案 0 :(得分:0)
绝对是您的项目配置 如果像这样
你的代码完全正常
http://localhost:8080/PsiNavigator/chat
&#13;
我使用的是Angular 4.0.2 Typescript 2.2.2 我修改了以便更具体
答案 1 :(得分:0)
从VS代码中禁用角度扩展包和角度语言服务插件。
我有类似的问题,这解决了它。