【发布时间】:2021-07-06 18:23:24
【问题描述】:
我有一段代码,我需要在几个不同的地方知道一个变量是否是一个数组(它可以是一个数组或字符串)。如果是,我会映射数据。如果没有,我会做其他事情。
打字稿抱怨的简化代码:
function myFunc(input: unknown[] | string) {
const isArray = Array.isArray(input);
if (isArray) {
// this line throws an error, since `map` is not a valid method for strings
return input.map(/* do stuff here*/);
}
return input;
}
如果我将带有if 语句的行更改为:
if (Array.isArray(input))
然后打字稿似乎明白input实际上是一个数组。
不过,我在实际代码中的多个地方都使用了该检查,并且希望使用单个变量来提高可读性,而不是每次都使用Array.isArray。
这是怎么回事?
【问题讨论】:
标签: javascript arrays typescript