我在本机脚本项目上取得了很好的进展,直到发生这种情况:
JS: EXCEPTION: Uncaught (in promise): ReferenceError: __assign is not defined
这是从这行代码冒出来的:
return [...state, { ...action.payload, success: false }];
这是我的tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noEmitHelpers": true,
"noEmitOnError": true
},
"exclude": [
"node_modules",
"platforms",
"**/*.aot.ts"
]
}
Typescript似乎没有在编译源中包含它的帮助器__assign
函数 - 这是它们实现对象扩展语法的方式。难道你们中的任何一个人都会知道为什么吗?
答案 0 :(得分:13)
我很高兴地报告我找到了解决方法。这个GitHub repo很好地解释了事情,但这是一个快速的概述:
tsconfig.json中的标志noEmitHelpers
告诉Typescript省略这些'助手' (例如__assign
)在每个需要它们的文件中。
{
"compilerOptions": {
// changing this to false does the job, but duplicates helpers across every file
"noEmitHelpers": false
}
}
使用标记importHelpers
(请参阅compiler options),最新的Typescript提供了更好的方法来管理它:
{
"compilerOptions": {
"noEmitHelpers": true,
"importHelpers": true // better
}
}
这会使对象传播起作用,并避免跨文件的代码重复。
您可能还需要npm install tslib --save
来停止IDE错误。
答案 1 :(得分:0)
您是否尝试将"lib": "es6"
添加到tsconfig?