如何允许函数返回类型未定义 [英] How to allow a function return type undefined

查看:16
本文介绍了如何允许函数返回类型未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我觉得打字稿有很多不明显的地方,不严格,不正确。

我希望使用未定义的作为函数返回类型。因为在现实中,它是未定义的,而不是空洞或其他虚构的类型。但是当我写这篇文章的时候:

function myFunction(): undefined {
    
}

它指定";声明类型既不是"void"也不是"any"的函数必须返回值";。

它不能。每个人都可以证实这一点。我不想同意无效更好,我们决定承诺等于未定义,以此类推。如果明显多余,不想写return undefined

在此示例中如何使其工作?可能存在某些标志或某些奇迹注释说明(&Q;)?

以下是使用案例,解释为什么我希望显式未定义:

Wrong example with an issue

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返回函数区分开来。

Playground link to code

这篇关于如何允许函数返回类型未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆