【问题标题】:on ng build --prod am gettng error,Property 'email' does not exist on type 'Object在 ng build --prod am gettng 错误,“对象”类型上不存在属性“电子邮件”
【发布时间】:2018-08-29 07:23:54
【问题描述】:

在 login.component.ts 中声明 loginObj 如下

 public loginObj: Object = {
   email:'',
   password:''
 };
 public registerObj: Object = {
  email:'',
  name:'',
  password:''
 };

HTML

<input placeholder="" type="text"  [(ngModel)]="loginObj.email" autofocus="true" required>
<input placeholder="" type="text"  [(ngModel)]="loginObj.password" autofocus="true" required>

【问题讨论】:

  • : Object 替换为: any
  • 您可能会发现此答案有助于解释为什么您不能以这种方式使用 Object stackoverflow.com/questions/18961203/… 使用 object 或如下回答,创建一个具有唯一名称的界面

标签: angular typescript ecmascript-6 angular2-forms ng-build


【解决方案1】:

错误是正确的,此属性不存在。你需要创建接口

export interface LoginObject {
   email:string;
   password:string;
}

adn 然后将其导入您的组件并像这样声明您的对象

public loginObj: LoginObject = {
   email:'',
   password:''
 };

你甚至可以尝试像这样声明它

public loginObj: LoginObject;

它会为你工作

【讨论】:

  • 谢谢,对我很有帮助。
【解决方案2】:

将类型设为 any 而非 Object 或定义接口并将其设为类型。

【讨论】:

    【解决方案3】:

    我在 jenkins 中构建它时遇到了类似的错误。以下命令解决了这个问题:

    npm install
    npm run ng build --prod
    

    希望对你有帮助

    【讨论】:

    • 我相信这个构建命令并没有进行生产构建,并且就像您正在运行仍然加载所有开发依赖项的“ng build”一样。
    • @RobDePietro 我认为你可能是对的。我在 GCP 云构建中运行了这个命令,果然我总是收到“Angular 正在开发模式下运行”控制台消息。
    【解决方案4】:

    尝试在你的 package.json 中添加这个依赖 "@angular/compiler-cli":"9.0.0(或你使用的其他版本)"

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 2019-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 2020-08-07
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多