【问题标题】:core.js:4197 ERROR TypeError: Cannot call a class as a functioncore.js:4197 错误类型错误:无法将类作为函数调用
【发布时间】:2020-12-01 20:23:02
【问题描述】:

在为 Angular 应用程序提供服务时,在 Angular v10 中出现控制台错误

core.js:4197 ERROR TypeError: Cannot call a class as a function
    at _classCallCheck (classCallCheck.js:3)
    at new Button (button.js:36)
    at ButtonComponent.<anonymous> (createSuper.js:12)
    at new ButtonComponent (button.component.ts:30)
    at NodeInjectorFactory.ButtonComponent_Factory [as factory] (button.component.ts:57)
    at getNodeInjectable (core.js:4029)
    at instantiateAllDirectives (core.js:8092)
    at createDirectivesInstances (core.js:7474)
    at ɵɵelementStart (core.js:14001)
    at SBController_Template (template.html:114)

演示:https://github.com/kumaresan-subramani/AngularSampleIssue

复制步骤:

  1. npm 我
  2. npm 运行开始

角度团队的回答 - https://github.com/angular/angular-cli/issues/18125#issuecomment-672069800

【问题讨论】:

    标签: javascript angular typescript angular-cli-v9


    【解决方案1】:

    我确实看过你的回购。看起来您的 ES target 已在不支持类的 tsconfig.base.json 文件中设置为 es5。我认为您必须至少从es6 (es2015) 设置它,然后它应该可以工作:

    {
      "compilerOptions": {
        "target": "es2015",
      }
    }
    

    【讨论】:

    • HI @tmhao2005, ES target has been set as "es5"in your "tsconfig.base.json" file which doesn't support class 你有这方面的文档参考吗?
    • 这里是 es2015 出现的所有功能:es6-features.org/#ClassDefinition
    • 我也不知道你为什么改回es5
    • 看起来你很想支持不支持 es6 语法的旧浏览器,比如 IE,对吧?
    • 这第三个库(ej2)看起来像babel transpile code 有问题
    猜你喜欢
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 2020-07-22
    • 2021-04-05
    • 1970-01-01
    • 2021-03-12
    相关资源
    最近更新 更多