【发布时间】:2022-06-21 20:19:27
【问题描述】:
当我尝试在 Angular 项目中使用私有字段时出现此错误。
Error: ./src/app/_helpers/sample.js 6:11
Module parse failed: Unexpected character '#' (6:11)
File was processed with these loaders:
./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js
./node_modules/@ngtools/webpack/src/ivy/index.js
./node_modules/source-map-loader/dist/cjs.js
You may need an additional loader to handle the result of these loaders.
sample.js 文件:
class Sample {
constructor() {
this.#reloadConfig(); // 6th line
}
#reloadConfig() {
}
EDIT:可以通过将 Angular 从 11 升级到 12 来解决它,看来 Angular 11 不支持在 JS 文件中声明的 private 方法。
【问题讨论】:
-
您能否确认您使用的是哪个版本的 Angular 和 TypeScript。
-
Angular 11 和 typeScript 4.1.4 但这是一个 JS 文件
-
您在 Angular 项目(Angular CLI?)中使用 vanilla JavaScript,即使 Angular 旨在将 TypeScript 转换为 JavaScript?您是否在 Angular 构建期间或浏览器中收到此错误?您是否检查过您的浏览器和版本是否支持私有类字段? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 或 caniuse.com/mdn-javascript_classes_private_class_fields
-
我在构建过程中遇到了这个错误。
-
你能在stackblitz.com创建一个最小的工作示例吗?
标签: javascript angular webpack