我正在try 获取我为其分配了修饰符的方法的响应类型(一个老式的文字实验修饰符,而不是较新的JS修饰符).这是使用响应属性的名称作为修饰符本身的参数.
我有以下代码:
type TaskProps<T, M> = {
next: keyof T;
param: ReturnType<M> extends {} ? keyof ReturnType<M> : string;
};
function Task<T, K extends keyof T>(props: TaskProps<T, T[K]>) {
return function (target: T, propertyKey: K, descriptor: PropertyDescriptor) {
};
}
class ExampleClass {
@Task({
next: "bye",
param: "name",
})
hello() {
return {
name: "example",
age: 11
};
}
bye() {}
}
当我将类型M传递给ReturnType时,它告诉我
类型‘M’不满足约束‘(...args:any)=>;any’.