Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于如何移除ES7装饰器有什么想法吗?_Javascript_Decorator_Ecmascript 2016 - Fatal编程技术网

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
标志装饰装饰器函数?