在装饰器的函数主体中定义参数类型

时间:2019-03-29 10:27:07

标签: typescript generics reflection

以下装饰器采用名为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; } 的参数类型取决于父函数的执行情况时可以描述吗?

0 个答案:

没有答案