嗨,我是Angular的新手,并创建了一个简单的计算器应用程序,您可以在此处查看:
https://stackblitz.com/edit/angular-ibplpz
大多数情况下,应用程序都可以正常工作。但是,当我尝试运行“ ng build --prod”时,我发现cli中出现了错误:
src / app / calculator / calculator.component.html(6,64)中的ERROR:: 类型“ allClear”的参数不能分配给类型的参数 “操作员”。 src / app / calculator / calculator.component.html(7,64):: 类型““ clear”'的参数不能分配给类型的参数 “操作员”。 src / app / calculator / calculator.component.html(9,67):: 类型““ divide”'的参数不能分配给类型的参数 “操作员”。 src / app / calculator / calculator.component.html(13,67):: 类型““ multiply”'的参数不能分配给类型的参数 “操作员”。 src / app / calculator / calculator.component.html(17,67):: 类型““减”“的参数不能分配给类型的参数 “操作员”。 src / app / calculator / calculator.component.html(21,11):: 类型““ add”'的参数不能分配给类型的参数 “操作员”。 src / app / calculator / calculator.component.html(24,38):: 类型““ dot”'的参数不能分配给类型的参数 “操作员”。 src / app / calculator / calculator.component.html(25,11):: 类型““等于”的参数不能分配给类型的参数 “操作员”。
也请告知我,我想知道应用程序的总体结构是否应该进行重组,以使其更好地成为“ Angular”的最佳选择。
答案 0 :(得分:1)
即使$('ul#tree > li > ul > li').click(function() { //targets 2nd level of list
$('ul#tree > li > ul > li').not(this).each(function() {
$(this).children('ul').hide('fast');
});
});
具有错误中的所有值,但它仍然不是同一类型。我更新了your blitz
您应该定义这样的类属性
$('ul#tree > li > ul > li > ul > li').click(function() { //targets 3rd level of list
$('ul#tree > li > ul > li > ul > li').not(this).each(function() {
$(this).children('ul').hide('fast');
});
});
在您的html中,将字符串参数更改为Operator
,operators = Operator;
等。
例如,
更改
operators.allClear
到
operators.add
通过这种方式,angular不会抱怨类型不匹配。另外,您可以轻松地重构代码并更改枚举值。