TypeScript 实验装饰器在导出语句中不起作用,

r1zhe5dt  于 6个月前  发布在  TypeScript
关注(0)|答案(2)|浏览(45)

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 上发布过,并被转到这里:

vulvrdjw

vulvrdjw1#

在TS中实现的装饰器是"实验性"的装饰器,它们实际上比当前TC39提案更早出现,而该提案尚未达到第三阶段。

t8e9dugd

t8e9dugd2#

OP必须与Babel一起工作:分离导出语句,以便TS不会出现错误,然后@babel/typescript可以编译它(我也在这样做)。

相关问题