TypeScript装饰程序在传输时能转换代码吗?

TypeScript装饰程序在传输时能转换代码吗?,typescript,transpiler,Typescript,Transpiler,我又开始评估TypeScript了,来自BabelJS。我想创建类装饰器,将某些行为或特性添加到代码中。我有点运气,但打字脚本在这方面似乎和巴贝尔有点不同。它没有将代码添加到传输的结果中,而是创建了更复杂的装饰器函数,这些函数基本上是在运行时完成的。对我来说,这似乎有点低效。可能会在运行时添加不必要的执行,在传输大量文件时肯定会膨胀。不管怎样,我想知道我是否能更好地控制这种转换,使事情更简洁。例如: 输入: @managed class MyClass { constructor() {

我又开始评估TypeScript了,来自BabelJS。我想创建类装饰器,将某些行为或特性添加到代码中。我有点运气,但打字脚本在这方面似乎和巴贝尔有点不同。它没有将代码添加到传输的结果中,而是创建了更复杂的装饰器函数,这些函数基本上是在运行时完成的。对我来说,这似乎有点低效。可能会在运行时添加不必要的执行,在传输大量文件时肯定会膨胀。不管怎样,我想知道我是否能更好地控制这种转换,使事情更简洁。例如:

输入:

@managed
class MyClass {
   constructor() {
   }
}
输出:

var MyClass = (function () {
  function MyClass() {
    this.cid = 'MyClass';
  }
  return MyClass;
}());

注意,在我想要的输出中,它不包括“托管”装饰器的_装饰或代码。它只是最终的、所需的ES5代码,没有运行时扩展。

不,您可能无法拥有它。但如果这就是你想要的,只要有一个基类,然后简单地继承它。是的,我可能最终只会使用“扩展”。只是在学习诀窍。到目前为止,我看到的来自装饰师的很多东西都有点臃肿。我希望他们能真正控制转变。从目前为止我所看到的情况来看,用一种简洁的方式自己编写这些代码更有意义。我不确定编译器如何做到你要求它做的事情。装饰器对于某些用例很有用,但它们并不是其他用例的答案。出于好奇,你认为Babel在编译时在哪里做事情?装饰器是一种运行时功能。不,你可能不能拥有它。但如果这就是你想要的,只要有一个基类,然后简单地继承它。是的,我可能最终只会使用“扩展”。只是在学习诀窍。到目前为止,我看到的来自装饰师的很多东西都有点臃肿。我希望他们能真正控制转变。从目前为止我所看到的情况来看,用一种简洁的方式自己编写这些代码更有意义。我不确定编译器如何做到你要求它做的事情。装饰器对于某些用例很有用,但它们并不是其他用例的答案。出于好奇,你认为Babel在编译时在哪里做事情?装饰器是一种运行时特性。