const arr = [1, 2, 3];
console.log(arr[5]); // 期待数组下标越界错误
typescript 不管运行时,要检查只能你自己检查
比如用 Proxy
const SafeArray = arr => new Proxy(arr, {
get: (_, k) => {
k = + k
if (Number.isInteger(k) && k >= 0 && k < arr.length) return arr[k]
throw Error('越界')
},
set: (_, k, v) => {
k = + k
if (Number.isInteger(k) && k >= 0 && k < arr.length) arr[k] = v
throw Error('越界')
},
// ...
})
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
虽然数组不行,但是用元组是可以的