以下装饰器采用名为inlineformset
的函数参数。 func
将在装饰器的返回函数中执行-参数取决于装饰器被调用的属性类型。
func
type ArgumentFunc = <T>(arg: T) => T;
function Decorator(func: ArgumentFunc): PropertyDecorator {
return (prototype, field) => {
const designType: string | number = Reflect.getMetadata('design:type', prototype, field);
func<typeof designType>(designType);
}
}
class Foo {
@Decorator(string => string) // string is of type T, should be type string
bar: string;
@Decorator(number => number) // string is of type T, should be type number
baz: number;
}
的参数类型取决于父函数的执行情况时可以描述吗?