【发布时间】:2021-10-26 16:30:18
【问题描述】:
我有一个简单的 TypeScript tsconfig.json:
{
"compilerOptions": {
"target": "esnext",
"experimentalDecorators": true,
...
还有一个使用装饰器的类:
class MyClass {
@myDecorator()
myField: any;
}
装饰器导致myField作为使用__decorate函数的属性发出,myDecorator函数被传递给它。
升级到最新版本 (4.2.4) 后,它在 Visual Studio 2019 中停止工作,但它继续在 VS Code(使用 4.3.5)和持续集成工具(在 4.3.5 和更早版本 3. * TypeScript 版本)。
经过一番调查,发出的 JavaScript 似乎已更改为显式包含字段,但 仅 在 Visual Studio 2019 中嵌入的 TypeScript 4.2.4 中。这些显式字段导致 __decorate无法创建具有相同名称的新属性。
为什么发出的 JS 变了?
我该如何解决?
【问题讨论】:
标签: javascript typescript visual-studio tsconfig typescript-decorator