【发布时间】:2020-11-02 07:08:00
【问题描述】:
我有以下类型声明:
public static Loop<Type>(arr:Type[], callback:(obj:Type) => void):void;
这描述了使用原生 JavaScript 实现的函数的签名。它循环遍历数组中的每个对象并将其传递给回调函数,例如:
Loop(["hello", "world"], function(value)
{
console.log(value);
});
像上面的例子一样使用智能感知,但我也希望它在数组可以是不同类型时工作,例如:
let arr: string[] | number[] = [];
Loop(arr, function(value)
{
console.log(value);
});
但是上面的例子不起作用——“值”是用“任意”类型来描述的,而不是“字符串|数字”。
但是,如果数组被声明为let arr: (string|number)[],它会按预期工作。但我对混合数组不感兴趣。可以是字符串数组,也可以是数字数组。
我可以声明循环使用的签名吗? string[] | number[]?
-- 提前致谢
【问题讨论】:
标签: typescript typescript-typings