编译器配置项-compilerOptions
向后兼容性相关配置04
禁止多余属性错误 -suppressExcessPropertyErrors
启用这个选项会禁止报告多余的属性错误,例如以下示例中显示的错误:
type Point = { x: number; y: number };
const p: Point = { x: 1, y: 3, m: 10 };
Object literal may only specify known properties, and 'm' does not exist in type 'Point'.
添加这个选项的目的,是为了帮助人们在迁移到 TypeScript 1.6 时,对新文本对象进行更严格的检查。
我们不建议在现代代码库中使用此标志,您可以在需要它的情况下使用 // @ts-ignore
。
禁止隐式的任意索引签名错误 -suppressImplicitAnyIndexErrors
启用 suppressImplicitAnyIndexErrors
选项,将禁止在隐式任意索引签名的对象上报告错误,如以下示例所示:
const obj = { x: 10 };
console.log(obj["foo"]);
Element implicitly has an 'any' type because expression of type '"foo"' can't be used to index type '{ x: number; }'.
Property 'foo' does not exist on type '{ x: number; }'.
使用suppressImplicitAnyIndexErrors
选项是一种相当激烈的方法,建议改用注释 @ts-ignore
代替:
const obj = { x: 10 };
// @ts-ignore
console.log(obj["foo"]);
网友评论