未捕获的类型错误:不能在没有使用“new”的情况下调用类构造函数Platform。

6

我已经安装了Angular CDK,以便使用PrimeNG的dropdown组件,但出现错误。

我在我的app.module.ts中添加了以下内容:

import {DropdownModule} from 'primeng/dropdown';

只需要键入以下内容,即可安装Angular CDK:

npm install @angular/cdk --save

这个问题是否与您所面临的问题相同?如果是,避免转换为ES5(请参考所选答案)。 - Cat
我不这么认为,ES5是什么? - Haagii95 Tugs
ECMAScript(JavaScript基于此标准)的不同版本遵循不同的规则。许多应用程序使用“babel”(或类似工具)将现代JS转换为遵循旧版本的规则,例如ECMAScript 5(即“ES5”)。链接问题的答案表明,这可能是一个坏主意,因为转换后的代码现在可能忽略了ES6的某些规则。您看到的错误意味着代码正在违反ES6规则(即类构造函数必须使用“new”关键字)。可能的原因之一是您的构建工具将应用程序转换为ES5版本。我不知道。 - Cat
3个回答

8

我也遇到了同样的问题。请检查您 package.json 文件中的 cdk 版本。

我解决了这个问题,通过安装旧版本的 cdk 10:

npm i @angular/cdk@9.2.4 --save

3

如果您在尝试使用Angular Material实现Material Design时遇到相同的问题,请回退material和cdk包的版本:

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

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

0
在 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 } } - Haagii95 Tugs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接