当我尝试运行单元测试时,我得到以下输出
$ npm test
> @ test C:\workspace\project
> mocha -r ./testhook.ts app/**/*.spec.ts
C:\workspace\project\app\common\product\price.model.ts:92
export class Price extends AbstractPrice {
^
ReferenceError: __extends is not defined
testhook.ts
包含:
require('ts-node').register({
compilerOptions: {
noEmitHelpers: false
}
});
我该怎么做才能解决此错误?
这是一个nativescript-angular项目。 tsconfig.json的内容是:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noEmitHelpers": true,
"noEmitOnError": true,
"lib": [
"es6",
"dom",
"es2015",
"es2015.iterable"
],
"baseUrl": ".",
"paths": {
"*": [
"./node_modules/tns-core-modules/*",
"./node_modules/*"
]
}
},
"exclude": [
"node_modules",
"platforms"
]
}
更新:我刚刚发现如果我从app文件夹中删除所有生成的.js文件,测试运行正常。任何人都可以解释一下吗?
答案 0 :(得分:0)
我没有足够的有关您问题的信息
但你可以使用其他相关选项,如importHelpers
或
尝试切换打字稿代码以使用es6样式导出:
class Price extends AbstractPrice {
}
export { Price };
答案 1 :(得分:0)
您没有提供有关您的设置的更多信息,但我想知道您是否正在点击this bug
这会导致有效的打字稿文件失败,因为__extend等函数将是未定义的。
请确保您使用的是TypeScript 2.7或更高版本。