在tsconfig.json
中启用strict
的情况下,为什么tsc
在索引类型为never
的对象时不会发出错误?
const mystery = ({ foo: 1 } as never)
console.log(mystery['foo']) // no error
console.log(mystery.foo) // Property 'foo' does not exist on type 'never'.
export {}
在tsconfig.json
中启用strict
的情况下,为什么tsc
在索引类型为never
的对象时不会发出错误?
const mystery = ({ foo: 1 } as never)
console.log(mystery['foo']) // no error
console.log(mystery.foo) // Property 'foo' does not exist on type 'never'.
export {}
'never' (and probably 'void') shouldn't be silently indexable types个
DanielRosenwasser于2020年10月10日发表 comments
let x = [1, 2, 3, 4].forEach(x => { console.log(x)); x["hello"] = 123;
预期:x可能为空的错误或其他错误 实际:没有错误
DanielRosenwasser于2020年10月10日发表 comments
事实上,
never
人似乎也有同样的问题.
打字团队正在积极修复它,但还没有可用的修复程序.
Here's更简单的复制:
declare let mystery: never;
console.log(mystery["foo"]); // No error
console.log(mystery.foo); // Property 'foo' does not exist on type 'never'.