【发布时间】:2017-07-29 08:39:18
【问题描述】:
我正在使用 Typescript 2.3.3
我正在尝试为我正在编写的一些代码创建一个不错的 API,因此我正在尝试使用 Typescript 的泛型。
我希望能够调用具有泛型类型的函数,并使用该类型向用户呈现选择,其中一些可能是具有不同签名的函数。
这是我目前的尝试。
我声明了一个带有两个裸函数签名的接口(我想向开发人员展示这两个选项):
interface api<T1> {
<T2>(second: T2): {
first: T1
second: T2;
};
<T2, T3>(second: T2, third: T3): {
first: T1
second: T2;
third: T3;
};
}
我创建了一个函数,其中包含每个函数签名的实现,使用传递给它的泛型类型参数:
const test = <TFirst>(first: TFirst) : api<TFirst> => {
const impl1 = <T2>(second: T2) => ({
first, second
});
const impl2 = <T2, T3>(second: T2, third: T3) =>({
first, second, third
});
return ...?
};
不过,我不知道在哪里分配这些实现或如何创建符合 api 规范的返回对象。
这可能吗?
【问题讨论】:
标签: typescript