打字稿:不允许隐含任何=>类,但允许任何=>接口

时间:2018-02-21 18:58:36

标签: typescript

如何配置我的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响应的布局很好,但我希望系统能够阻止我暗示普通对象可以隐式地转换为类。

1 个答案:

答案 0 :(得分:0)

  

要转换的任何类型的值

没有编译器选项可以防止显式 any与其他类型不兼容。

根据定义,any的任何内容都可以从任何内容分配。

noImplicitAny是关于推断的标志,只是防止您可能认为某些内容不是任何内容的错误,但推断它是任何错误。它不会改变any的行为方式。