如何允许函数返回类型未定义 [英] How to allow a function return type undefined
问题描述
我觉得打字稿有很多不明显的地方,不严格,不正确。
我希望使用未定义的作为函数返回类型。因为在现实中,它是未定义的,而不是空洞或其他虚构的类型。但是当我写这篇文章的时候:
function myFunction(): undefined {
}
它指定";声明类型既不是"void"也不是"any"的函数必须返回值";。
它不能。每个人都可以证实这一点。我不想同意无效更好,我们决定承诺等于未定义,以此类推。如果明显多余,不想写return undefined
。
在此示例中如何使其工作?可能存在某些标志或某些奇迹注释说明(&Q;)?
以下是使用案例,解释为什么我希望显式未定义:
Correct example with a solution
推荐答案
您希望编译器接受当代码路径没有显式return
语句时,其返回类型批注包括undefined
的函数可以隐式返回undefined
。这是一个合理的要求,但是正如您注意到的,该语言目前在TypeScript4.1中没有这个特性。在microsoft/TypeScript#36288上有针对此的开放功能请求。如果您希望增加此情况发生的可能性,您可能希望转到那里并为其提供👍,甚至可能描述为什么您的用例需要此功能,或者为什么您的代码将从中受益。
实际上,除非您能让很多人为这个问题叫嚣,否则看起来没有任何语言维护人员认为它是高优先级的。
您可能不喜欢这些变通方法,但不管怎样,下面就是这些变通方法。首先,显式包含return
语句(不带或不带undefined
):
function myFunctionReturn(): undefined {
return; // okay
}
第二,使用错误抑制注释之一,如//@ts-ignore
或//@ts-expect-error
:
//@ts-ignore
function myFunctionIgnore(): undefined {
}
可能还有其他方法来处理它,但是如果没有使用或使用这样的undefined
返回函数的用例minimal reproducible example,就很难知道如何将其与您反对的void
返回函数区分开来。
这篇关于如何允许函数返回类型未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!