我确实有这个课:
class Container<T>
{
prop<K extends keyof T>(key: K): BehaviorSubject<T[K]>
{
return null; // something
}
obj<K extends keyof T>(key: K): Container<T[K]>
{
return null; // something
}
}
并像这样使用它:
interface Obj
{
id: number;
employee: {
id: number;
name: string;
}
}
let container: Container<Obj>;
let id = container.prop('id'); // BehaviorSubject<number>
let employee = container.obj('employee'); // Container<{ id: number; name: string; }
let employeeName = employee.prop('name'); // BehaviorSubject<string>
现在我想要同样的东西(上面评论的变量类型),但我想对 prop 和 obj 使用相同的函数名。我想要一个基于属性类型切换返回类型的重载。
在 TypeScript 中可以吗?