TypeScript 中检查 Value 是否是(类型)数组
要检查一个值是否是 TypeScript 中特定类型的数组:
- 使用
Array.isArray()
方法检查值是否为数组。 - 遍历数组并检查每个值是否属于特定类型。
const arr: string[] = ['a', 'b', 'c'];
const isArray = Array.isArray(arr); // 👉️ true
if (Array.isArray(arr)) {
const isStringArray =
arr.length > 0 &&
arr.every((value) => {
return typeof value === 'string';
});
console.log(isStringArray); // 👉️ true
}
我们可以使用 Array.isArray
方法检查值是否为 TypeScript 中的数组。
console.log(Array.isArray([])); // 👉️ true
console.log(Array.isArray({})); // 👉️ false
console.log(Array.isArray('hello')); // 👉️ false
该方法将一个值作为参数并返回一个布尔结果 – 如果该值是一个数组则返回 true,否则返回 false。
如果需要检查值是否为特定类型的数组,则必须遍历数组的元素并检查每个元素是否为特定类型。
我们使用 Array.every()
方法遍历数组。
我们传递给 every
方法的函数会针对每个元素调用,直到它返回一个虚假值或遍历整个数组。
const arr: string[] = ['a', 'b', 'c'];
if (Array.isArray(arr)) {
const isStringArray =
arr.length > 0 &&
arr.every((value) => {
return typeof value === 'string';
});
console.log(isStringArray); // 👉️ true
}
请注意
,我们做的第一件事是检查数组是否不为空。
无论实现的条件如何,在空数组上调用
every()
方法将始终返回 true。
这就是我们检查数组是否有超过 0 个元素的原因——以避免任何误报。
如果我们传递给 every
方法的回调函数在所有迭代中都返回 true,则 every 方法也将返回 true。
这是检查数组中的所有元素是否都属于特定类型的唯一方法。
如果我们不是从远程源获取数组,例如 一个 API,并且我们使用的是 TypeScript,我们几乎可以假设该数组包含预期类型的元素,除非我们在使用该数组时使用 any
或类型断言。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。