【问题标题】:getting Error when i ran ng serve after ng build在 ng build 后运行 ng serve 时出现错误
【发布时间】:2019-08-25 16:38:02
【问题描述】:

我正在开发我的第一个 Angular 应用程序,我正在本地机器上设置一个现有的 Angular 应用程序。
运行ng serve时出现以下错误

错误 src/app/common-componets/directives/dropFile/drop-file.directive.ts(47,21): 错误 TS2345:类型为“字符串”的参数 | ArrayBuffer' 不是 可分配给“字符串”类型的参数。类型“ArrayBuffer”是 不可分配给类型“字符串”。 src/app/common-componets/input-image/input-image.component.ts(58,13): 错误 TS2322:键入“字符串 | ArrayBuffer' 不可分配给类型 '细绳'。类型“ArrayBuffer”不可分配给类型“字符串”。 src/app/dashboard/dashboard/components/new-community/new-community.component.ts(248,15): 错误 TS2322:类型 '{ 区域:字符串;卡雷拉:字符串;名称:任何; publicado:布尔值;简历:字符串; url照片:任意;过滤器:空; urlVideo:任意;键:字符串; uid:字符串;活跃社区:假; 位置社区:假; ... 9 更多 ...;位置:号码; }' 不是 可分配给类型“IComunidad”。缺少属性“briefingTags” 在类型'{区域:字符串;卡雷拉:字符串;名称:任何;公众号: 布尔值;简历:字符串; url照片:任意;过滤器:空; urlVideo:任意; 键:字符串; uid:字符串;活跃社区:假;职位社区: 错误的; ... 9 更多 ...;位置:号码; }'。 src/app/modals/upload-users-csv/upload-users-csv.component.ts(34,11): 错误 TS2322:键入“字符串 | ArrayBuffer' 不可分配给类型 '细绳'。类型 'ArrayBuffer' 不能分配给类型 'string'。

npm v 6.4.1 
Angular CLI: 7.3.5  
Node: 10.15.3  
OS: linux x64  
Angular: 6.1.10  
... animations, common, compiler, core, forms, http
... language-service, platform-browser, platform-browser-dynamic
... platform-server, router    

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.8.4
@angular-devkit/build-angular      0.13.4
@angular-devkit/build-ng-packagr   0.8.4
@angular-devkit/build-optimizer    0.13.4
@angular-devkit/build-webpack      0.13.4
@angular-devkit/core               0.8.4
@angular-devkit/schematics         7.3.5
@angular/cdk                       6.4.7
@angular/cli                       7.3.5
@angular/compiler-cli              7.2.12
@angular/fire                      5.1.0
@angular/flex-layout               7.0.0-beta.24
@angular/material                  6.4.7
@ngtools/json-schema               1.1.0
@ngtools/webpack                   7.3.4
@schematics/angular                7.3.5
@schematics/update                 0.13.5
ng-packagr                         4.7.1
rxjs                               6.2.1
typescript                         3.1.6
webpack                            4.29.0

有谁知道,怎么解决?

【问题讨论】:

  • 该错误清楚地表明类型与确切的组件名称和行号不兼容。 image.component.ts(58,13): error TS2322: Type 'string | ArrayBuffer' is not assignable to type 'string'. Type 'ArrayBuffer' is not assignable to type 'string'.

标签: angular npm angular-cli npm-install


【解决方案1】:

'string | 类型的参数ArrayBuffer' 不可分配给“字符串”类型的参数

意味着你需要一个 if 来围绕你的作业

if (typeof val === 'string') {
  otherVal = val;
}

这样编译器就知道你有一个字符串而不是一个 ArrayBuffer

【讨论】:

  • 感谢您回复 Adrian Brand。如果我的代码是这个convertImage(file: File) { const reader = new FileReader() reader.readAsDataURL(file) reader.onload = () => { this.base64.emit(reader.result) <===== ERROR LINE } }这个怎么解决?
猜你喜欢
  • 2018-12-09
  • 1970-01-01
  • 2019-01-07
  • 2017-09-30
  • 2019-08-28
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多