TypeScript 版本: JavaScript + ESNext
搜索关键词: export+experimental+decorators+export
代码
export default
@x
class A {
}
[❌] 上述方法不起作用。
@x
class A {}
export default A;
[👌] 在旧语法中,即将 export
语句和 class
表达式分开使用时,这种方法可以正常工作。例如:
预期行为:
根据 @babel/plugin-proposal-decorators,该语法应该是有效的,同时也符合 tc39 规范。
实际行为:
第一个 @
引发了以下错误:
Expression expected. ts(1109)
** playground 链接:**
https://www.typescriptlang.org/play/?target=99&ts=4.0.0-dev.20200714&useJavaScript=true#code/KYDwDg9gTgLgBAE2AMwIYFcA2MBQABGVAcwAoByYAYwFsBaUMTVASwDtgoyBKfGYaxqj7kAPAmYA3AHwiA9OOncclJgGdVcALIBPAMIQBcUH1YINAZUzNqcAN44AvkA
相关问题:
我之前在 VSCode issues 上发布过,并被转到这里:
2条答案
按热度按时间vulvrdjw1#
在TS中实现的装饰器是"实验性"的装饰器,它们实际上比当前TC39提案更早出现,而该提案尚未达到第三阶段。
t8e9dugd2#
OP必须与Babel一起工作:分离导出语句,以便TS不会出现错误,然后
@babel/typescript
可以编译它(我也在这样做)。