在形式的函数中
function myFunc(param: any) {}
如何正确检查param是否可以传播?(...param)如何知道未知变量是否可以安全地扩展为任何类型的扩展(数组/对象)?
param
...param
8hhllhi21#
你可以使用Symbol.iterator属性检查它是否是可迭代的。如果变量是可迭代的,你可以安全地传播它。
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] }
1条答案
按热度按时间8hhllhi21#
你可以使用
Symbol.iterator
属性检查它是否是可迭代的。如果变量是可迭代的,你可以安全地传播它。演示: