我正试图围绕装饰者&打字稿和思想角度中的元数据将是寻找某种最佳实践的好项目。
在旧版本(例如2.1)中,他们使用的是DecoratorFactories,在内部他们对reflect-metadata
API提案(https://github.com/angular/angular/blob/2.1.x/modules/%40angular/core/src/util/decorators.ts)
在新版本中,他们开始为装饰器(https://github.com/angular/angular/blob/master/packages/core/src/util/decorators.ts)实现自己的系统,并将数据附加到易于访问的构造函数中。像:
@SomeDecorator(someDataObject)
class SomeClass { ..... }
console.log(SomeClass['__annotations__'])
console.log(SomeClass['__paramaters__'])
console.log(SomeClass['__prop__metadata__'])
有人知道他们为什么要这样做吗?好处?缺点是什么?