如何配置我的tsconfig.json以不允许将类型any
的值转换为类但允许它们转换为接口?有可能吗?
interface Foo {}
class Bar {
someMemberMethod() { }
}
const value: any = JSON.parse(someJsonString);
const valueFoo: Foo = value; // should be fine
const valueBar: Bar = value; // should throw syntax error
valueBar.someMemberMethod();
使用接口来告诉类型系统json响应的布局很好,但我希望系统能够阻止我暗示普通对象可以隐式地转换为类。
答案 0 :(得分:0)
要转换的任何类型的值
没有编译器选项可以防止显式 any
与其他类型不兼容。
根据定义,any
的任何内容都可以从任何内容分配。
noImplicitAny
是关于推断的标志,只是防止您可能认为某些内容不是任何内容的错误,但推断它是任何错误。它不会改变any
的行为方式。