typescript 如何判断对象是否可以展开(阵列/对象展开)

wmomyfyw  于 2023-03-31  发布在  TypeScript
关注(0)|答案(1)|浏览(122)

在形式的函数中

function myFunc(param: any) {}

如何正确检查param是否可以传播?(...param
如何知道未知变量是否可以安全地扩展为任何类型的扩展(数组/对象)?

8hhllhi2

8hhllhi21#

你可以使用Symbol.iterator属性检查它是否是可迭代的。如果变量是可迭代的,你可以安全地传播它。

演示:

let arr = [1, 2, 3];
console.log(typeof arr[Symbol.iterator]); //function
let obj = { a: 1, b: 2, c: 3 };
console.log(typeof obj[Symbol.iterator]); //undefined
let unknownVar = [1, 2, 3];
if (unknownVar[Symbol.iterator]) {
  let newArr = [...unknownVar];
  console.log(newArr); //[1, 2, 3]
}

相关问题