Javascript 关于如何移除ES7装饰器有什么想法吗?
我有一些开发装饰程序,比如Javascript 关于如何移除ES7装饰器有什么想法吗?,javascript,decorator,ecmascript-2016,Javascript,Decorator,Ecmascript 2016,我有一些开发装饰程序,比如@timer,@checkOptimizations,等等。我正试图找出如何在生产中删除它们。示例类: class Foo { @timer bar() { } } 现在我可以用一个无操作函数替换decorator,使它们不那么容易工作。但是生成的代码非常繁重(基本类是1640字节未压缩,而没有decorator的是353字节)。我已经构建了一个插件来解决这个问题。在传输代码之前,它将删除所有的装饰程序。当我们想对代码进行单元测试时,我们就使用它,因为我们
@timer
,@checkOptimizations
,等等。我正试图找出如何在生产中删除它们。示例类:
class Foo {
@timer
bar() {
}
}
现在我可以用一个无操作函数替换decorator,使它们不那么容易工作。但是生成的代码非常繁重(基本类是1640字节未压缩,而没有decorator的是353字节)。我已经构建了一个插件来解决这个问题。在传输代码之前,它将删除所有的装饰程序。当我们想对代码进行单元测试时,我们就使用它,因为我们不想在测试中把装饰器应用到“单元”(即类)上 这是: 如果只想删除某些装饰器,可能需要使用以下装饰器:
为您使用的transpiler实现一个插件,以便在翻译节点之前将其删除。@zerkms——好的,关于将decorator标记为死代码的有效语法有什么想法吗?我不想发明什么:)让它成为你的插件参数,这样所有的
@timer
都被删除了。否则,我想不出有什么比在装饰者面前的显式注释更糟糕的了,例如://死代码装饰者
-DBtw,您可以有一个@dead(['timer'])
-一个参数化的装饰器,它接受一个带有装饰器的数组,在转换过程中必须删除这些装饰器。@zyklus:用@dead
标志装饰装饰器函数?