typescript 泛型三元返回值

function toArray<T>(args: T) {
    return Array.isArray(args) ? args : [args];
}

const target = [1];

const targetArray = toArray(target).map((t) => t);

此时会 map 会 ts 报错:
This expression is not callable.

请问下这是为啥?如何解决?

阅读 2.5k
1 个回答

显式声明一下?

function toArray<T>(args: T[]) : T[];
function toArray<T>(args: T) : T[];
function toArray<T>(args: T) {
    return Array.isArray(args) ? args : [args];
}

const target = [1];

const targetArray = toArray(target).map((t) => t);
const targetArray2 = toArray(2).map((t) => t);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏