ts中能操作数组下标越界错误提示吗?

const arr = [1, 2, 3];
console.log(arr[5]); // 期待数组下标越界错误
阅读 2.9k
2 个回答

虽然数组不行,但是用元组是可以的

type Arr = [number,number,number]
const arr: Arr = [1,2,3]
console.log(arr[5]); // error

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('越界')
    },
    // ...
})

Devtool

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题