我目前正在将一些 Javascript 代码移植到 Typescript。我有一个本质上等同于以下内容的函数:
let deepArray = [];
function deeper() {
if(Math.random() > 0.5) {
deepArray.push(deeper());
} else {
deepArray.push("No deeper.");
}
return deepArray;
}
deeper();
我想知道是否有一种简单的方法可以将类型分配给 deepArray
并将返回类型分配给 deeper
。显然,它是一个具有一定深度的 string[]
,但如前所述,该深度是不确定的。我希望尽可能保持代码与原始代码相似,因此避免更改数据结构是目标。这是可能的,还是我应该将其标记为 any
并继续?
最佳答案
您可以定义一个表示任意嵌套数组的类型:
interface NestedArray<T> extends Array<T | NestedArray<T>> {
}
let deepArray: NestedArray<string> = [];
function deeper() {
if (Math.random() > 0.5) {
deepArray.push(deeper());
} else {
deepArray.push("No deeper.");
}
return deepArray;
}
deeper();
console.log(deepArray)
关于javascript - 在 Typescript 中输入非确定性深度数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56596313/