首页 > 解决方案 > 我的第一个应用程序的 Angular 部署到生产失败

问题描述

嗨,我是 Angular 的新手,并创建了一个简单的计算器应用程序,您可以在此处看到:

https://stackblitz.com/edit/angular-ibplpz

该应用程序大部分工作正常..但是当我尝试运行“ng build --prod”时,我得到了 cli 中出现的错误分配:

src/app/calculator/calculator.component.html(6,64) 中的错误::“allClear”类型的参数不可分配给“Operator”类型的参数。src/app/calculator/calculator.component.html(7,64): : '"clear"' 类型的参数不可分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(9,67): : '"divide"' 类型的参数不可分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(13,67): : '"multiply"' 类型的参数不能分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(17,67): : '"minus"' 类型的参数不可分配给 'Operator' 类型的参数。源代码/应用程序/计算器/计算器。component.html(21,11): : '"add"' 类型的参数不能分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(24,38): : '"dot"' 类型的参数不能分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(25,11): : '"equal"' 类型的参数不可分配给'Operator' 类型的参数。

还请告知我想知道是否应该重组应用程序的一般结构以使其更好地成为“Angular”最佳部分。

标签: angulartypescript

解决方案


即使Operator您得到的错误中包含所有值,它仍然不是同一类型。我更新了你的闪电战

您应该像这样定义一个类属性

operators = Operator;

在您的 html 中,将字符串参数更改为operators.allClearoperators.add

例如,

改变

(click)="clickOperator('allClear')"

(click)="clickOperator(operators.allClear)"

通过这种方式,angular 不会抱怨类型不匹配。此外,您可以轻松地重构代码并更改枚举值。


推荐阅读