TypeScript装饰程序在传输时能转换代码吗?
我又开始评估TypeScript了,来自BabelJS。我想创建类装饰器,将某些行为或特性添加到代码中。我有点运气,但打字脚本在这方面似乎和巴贝尔有点不同。它没有将代码添加到传输的结果中,而是创建了更复杂的装饰器函数,这些函数基本上是在运行时完成的。对我来说,这似乎有点低效。可能会在运行时添加不必要的执行,在传输大量文件时肯定会膨胀。不管怎样,我想知道我是否能更好地控制这种转换,使事情更简洁。例如: 输入:TypeScript装饰程序在传输时能转换代码吗?,typescript,transpiler,Typescript,Transpiler,我又开始评估TypeScript了,来自BabelJS。我想创建类装饰器,将某些行为或特性添加到代码中。我有点运气,但打字脚本在这方面似乎和巴贝尔有点不同。它没有将代码添加到传输的结果中,而是创建了更复杂的装饰器函数,这些函数基本上是在运行时完成的。对我来说,这似乎有点低效。可能会在运行时添加不必要的执行,在传输大量文件时肯定会膨胀。不管怎样,我想知道我是否能更好地控制这种转换,使事情更简洁。例如: 输入: @managed class MyClass { constructor() {
@managed
class MyClass {
constructor() {
}
}
输出:
var MyClass = (function () {
function MyClass() {
this.cid = 'MyClass';
}
return MyClass;
}());
注意,在我想要的输出中,它不包括“托管”装饰器的_装饰或代码。它只是最终的、所需的ES5代码,没有运行时扩展。不,您可能无法拥有它。但如果这就是你想要的,只要有一个基类,然后简单地继承它。是的,我可能最终只会使用“扩展”。只是在学习诀窍。到目前为止,我看到的来自装饰师的很多东西都有点臃肿。我希望他们能真正控制转变。从目前为止我所看到的情况来看,用一种简洁的方式自己编写这些代码更有意义。我不确定编译器如何做到你要求它做的事情。装饰器对于某些用例很有用,但它们并不是其他用例的答案。出于好奇,你认为Babel在编译时在哪里做事情?装饰器是一种运行时功能。不,你可能不能拥有它。但如果这就是你想要的,只要有一个基类,然后简单地继承它。是的,我可能最终只会使用“扩展”。只是在学习诀窍。到目前为止,我看到的来自装饰师的很多东西都有点臃肿。我希望他们能真正控制转变。从目前为止我所看到的情况来看,用一种简洁的方式自己编写这些代码更有意义。我不确定编译器如何做到你要求它做的事情。装饰器对于某些用例很有用,但它们并不是其他用例的答案。出于好奇,你认为Babel在编译时在哪里做事情?装饰器是一种运行时特性。