【发布时间】:2023-02-02 16:49:41
【问题描述】:
我有这样的代码:
import { SuperClass } from 'some-library';
export class MyClass extends SuperClass {
constructor() {
super();
}
}
该程序失败并出现如下错误:
var _this = _super.call(this)) || this;
^
TypeError: Class constructor SuperClass cannot be invoked without 'new'
正如here 所回答的,这个问题是由于 TypeScript 将类转换为 ES5,而 SuperClass 是一个 ES6 类。
引用的答案说将 TypeScript 的“目标”选项设置为 es6 应该可以修复它。但是,如果我这样做,TypeScript 仍会输出 ES5 类。将“目标”设置为“es2018”或“2020”也无济于事。无论我做什么,输出都是这样的:
var MyClass = /** @class */ (function (_super) {
__extends(MyClass, _super);
function MyClass() {
这是我的 tsconfig.json:
{
"compilerOptions": {
"target": "ES2018",
"module": "commonjs",
"lib": ["es2018"],
"composite": true
},
"include": ["*.ts"]
}
如何使 TypeScript 输出 ES6 类?
【问题讨论】:
标签: typescript