我正在写一个NodeJS打字脚本项目。 假设我有以下文件:
class MyArray extends Array {
myCustomMethod() { /* do something */ }
}
然而,当我这样做的时候
let myarray = new MyArray();
myarray.myCustomMethod();
我明白了
TypeError: myarray.myCustomMethod is not a function
因此,我尝试将typescript模块
更改为es6(这样它将保留类扩展
语法),但它使用import
和export
关键字,而NodeJS本机不支持该关键字。
有没有一种方法可以强制typescript编译器在使用requirejs的同时也使用ES6?
还是我的错,我错过了什么?
Typescript的--module
选项(也是-m
)允许您指定它应该为哪个模块系统输出。 “commonJS”
是使用require
的变体。 项目配置选项文档中的详细信息。
因此,例如,在tsconfig.json
中,“module”:“commonJS”
与“target”:“ES2015”
(或“ES2020”
或“ESNext”
等)组合应使用require
和class
语法输出代码。