我认为这与TypeScript中decorators
的目的不符;但是,是否可以使用根据具体情况更改输出js
文件的装饰器?
用例1:
export class Foo {
@debugMode
private log() { /* implementation */ }
public doSomething() {
this.log(arguments);
}
}
@debugMode
装饰器,在构建时(gulp或..)中,在构建生产时删除方法及其调用方,以便在输出js中没有执行此方法的迹象文件。
或
@debugMode
@Route('UC2')
export class UC1Page{ }
在生产中构建时, @debugMode
将完全从输出js中删除类定义及其装饰器。
或
// this is not a valid syntax, only for the purpose of the usecase
// can achieve the same behavior using the first example
@debugMode doSomethingWeird(blah, blah);
@releaseMode sendGoogleAnalyticsInfo(blah, blah);
第一行将在生产中删除,而第二行将在开发环境中删除。
用例2(不一定在AngularJS中):
假设我们有以下文件夹结构:
[uc2]
-- uc2-component.ts
-- uc2-component.html
-- uc2-component.css
以及app-component.ts
中的以下代码:
@Component({
selector: 'my-foo',
styleUrls: ['very/long/path/to/this/folder/uc2/uc2.component.css'],
templateUrl: 'very/long/path/to/this/folder/uc2/uc2.component.html'
})
export class UC2Component { }
无论天气与否,这都是一种不好的做法,是否可以实际地向templateUrl
和styleUrl
提供HTML和CSS文件的正确路径 - 因为它们共享目录?这是为了避免对这些文件的路径进行硬编码,因此可以根据需要自由更改这3个文件的位置(这样我们只需要更改导入ts
文件的路径)。 / p>