【问题标题】:Uncaught TypeError: Class constructor Platform cannot be invoked without 'new'未捕获的类型错误:没有“新”就无法调用类构造函数平台
【发布时间】:2020-06-26 07:34:27
【问题描述】:

我已安装 Angular CDK 以使用 PrimeNG 的下拉组件,但它会引发错误。

我已经在我的 app.module.ts 中添加了这个:

import {DropdownModule} from 'primeng/dropdown';

只需输入以下内容即可安装 Angular CDK:

npm install @angular/cdk --save

【问题讨论】:

  • 这个问题和你遇到的一样吗? stackoverflow.com/questions/51860043/… ----- 如果是这样,请避免转译为 ES5(请参阅所选答案)
  • 我不这么认为,什么是 ES5
  • 不同版本的 ECMAScript(JavaScript 所基于的标准)遵循不同的规则。许多应用程序使用“babel”(或类似工具)来转换现代 JS 以遵循旧版本的规则,例如 ECMAScript 5(即“ES5”)。链接问题的答案表明这可能是一个坏主意,因为转译的代码现在可能会忽略 ES6 的某些规则。 ---- 您看到的错误意味着代码违反了 ES6 规则(类构造函数必须使用 new 关键字)。一种可能的原因是您的构建工具将您的应用程序转换为 ES5 版本。我不知道。

标签: angular angular-cdk


【解决方案1】:

我有同样的问题。在你的 package.json 中检查你的 cdk 版本

我解决了安装旧版本的 cdk 10:

npm i @angular/cdk@9.2.4 --save

【讨论】:

    【解决方案2】:

    如果有人在尝试使用 angular material 实现材料设计时遇到同样的问题,请将材料和 cdk 包回滚到旧版本:

    npm i @angular/cdk@9.2.4 @angular/material@9.2.4 --save
    

    我希望有人提出一种更好的方法,可以使用最新版本。

    【讨论】:

      【解决方案3】:

      在文件 tsconfig.json 中,

      添加这一行-"target": "es5",

      【讨论】:

      • { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es5", "lib": [ "es2018", "dom" ] }, "angularCompilerOptions": { "fullTemplateTypeCheck": true, "strictInjectionParameters": true } }
      猜你喜欢
      • 1970-01-01
      • 2019-03-21
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多