提供此TypeScript代码:
interface MyInterface{
myInterfaceProperty: string
}
class MyClass{
myClassProperty: MyInterface
myClassMethod(flag: boolean): MyInterface {
if (flag)
return null;
myClassProperty = //...
return myClassProperty;
}
}
代码编译正常但ReSharper
抱怨return null;
:
无法隐藏类型'any'以输入'MyInterface'
返回null接口的正确方法是什么?
答案 0 :(得分:0)
一个问题是,Typescript将null和undefined都计为不同的类型,而不是MyInterface对象的未初始化状态。您可以在Typescript文档中找到并进一步讨论:here。
您可以更改myClassMethod的类型定义以包含null作为其中一种可能的返回类型,它们看起来像这样:
myClassMethod(flag: boolean): MyInterface | null {
您列出的错误似乎不是null值的结果。它更可能是由myClassMethod的实现引起的。在你的myClassMethod中 - 至少在这个例子中 - 你没有引用this.myClassProperty(一个实现MyInterface接口的对象),但实际上是在创建一个没有类型的新变量,并且不一定实现所需的myInterfaceProperty
属性。
将此更改为this.myClassProperty
可能会解决此错误。