Typescript接受并返回受约束的泛型



我想要一个接受字符串或字符串数组的函数。然后它将返回中输入的相同数据类型。以下是当前不起作用的代码示例。

export default <T extends string | string[]>(s: T): T =>
Array.isArray(s)
? s.map(handleString)
: handleString(s)

我会用函数重载来实现这一点:

const handleString = (val: string) => val;
function example(s: string): string;
function example(s: string[]): string[];
function example(s: string | string[]): string | string[] {
return Array.isArray(s)
? s.map(handleString)
: handleString(s)
}
const a = example('a'); // a's type is string
const b = example(['b']); // b's type is string[]

游乐场链接

过载文件

最新更新