当使用变量访问对象时,为什么typescript允许访问不存在的属性

当使用变量访问对象时,为什么typescript允许访问不存在的属性,typescript,Typescript,为什么typescript不阻止访问将导致运行时错误的不存在属性?在上面的示例中,typescript将键推断为文字“b”typescript是否将其报告为错误,取决于您配置的编译器设置。如果您启用严格选项(或至少noImplicitAny),它会将其报告为错误 这是因为我的tsconfig中有“SuppressImplicationIndexErrors”。这是因为我的tsconfig中有“SuppressImplicationIndexErrors”。 const obj = { a

为什么typescript不阻止访问将导致运行时错误的不存在属性?在上面的示例中,typescript将键推断为文字“b”

typescript是否将其报告为错误,取决于您配置的编译器设置。如果您启用
严格
选项(或至少
noImplicitAny
),它会将其报告为错误

这是因为我的tsconfig中有“SuppressImplicationIndexErrors”。这是因为我的tsconfig中有“SuppressImplicationIndexErrors”。
const obj = {
   a: 5
} as const

obj.b ----> error

const key = "b"
obj[key] ----> no error