在 ng build --prod am gettng 错误,“对象”类型上不存在属性“电子邮件”

Posted

技术标签:

【中文标题】在 ng build --prod am gettng 错误,“对象”类型上不存在属性“电子邮件”【英文标题】:on ng build --prod am gettng error,Property 'email' does not exist on type 'Object 【发布时间】: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 ***.com/questions/18961203/… 使用 object 或如下回答,创建一个具有唯一名称的界面 【参考方案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(或你使用的其他版本)"

【讨论】:

以上是关于在 ng build --prod am gettng 错误,“对象”类型上不存在属性“电子邮件”的主要内容,如果未能解决你的问题,请参考以下文章

使用 ng build --prod 构建时出错。没有 --prod 标志和 ng serve 很好

运行 ng build --prod 时无法读取未定义的属性“替换”

ng build --prod 动态变量丢失

在 ng build --prod 期间无法解析验证指令中的所有参数

Angular 8 - ng build prod 在 ng serve 工作时显示错误 - 模块导入的意外值“未定义”

ng build --prod not running