在类型脚本5中,属性decorator 的类型定义已经更改,似乎没有一种方法可以获得类的构造函数.
它现在实现TC39 proposal,其中属性修饰符的第一个参数始终为undefined
:
type ClassFieldDecorator = (value: undefined, context: {
kind: "field";
name: string | symbol;
access: { get(): unknown, set(value: unknown): void };
static: boolean;
private: boolean;
}) => (initialValue: unknown) => unknown | void;
而在前面,装饰符函数的第一个参数是类的构造函数:
function myPropertyDecorator(target: Object, propertyKey: string) {
...
}
获取类的构造函数的能力对于一些库非常有用,例如验证库,这些库在类级别上操作,并存储每个类的验证映射.
对于新的装修师的提案,有什么 Select 呢?
- 在初始化函数中获得一个类构造函数?
- 用
experimentalDecorators
个而不是新的装修工? - 还有别的事吗?