如何在 Typescript 中键入以防止返回值

Gle*_*rde 9 typescript typescript-typings

如何防止用户从 Typescript 中的函数返回任何内容?

正如您在此示例中所看到的,这些类型都不够:

type VoidReturner = () => void;
type UndefReturner = () => undefined;
type NeverReturner = () => never;
Run Code Online (Sandbox Code Playgroud)
  • void只告诉用户返回值不重要(忽略类型?)
  • undefined要求开发者明确返回undefined
  • never是一个猜测,并且void(如示例 1 返回{})与它不匹配。

Ale*_*exG 6

你想要 () => void | 不明确的

不幸的是,可以通过首先将非匿名函数分配给另一种类型来欺骗它,否则当用户返回一个值(隐式或显式)时它就会起作用

  • 这实际上回答了问题,并且似乎是强制执行无返回类型的唯一方法。对于防止异步函数无意中传递给 React 中的 onClick 处理程序并在运行时导致未处理的异常非常有用。 (2认同)

Kar*_*ski 2

你不能。这是一个设计决定

返回某些内容的函数可以分配给返回 的函数void

  • 你当然可以:/sf/answers/4528220091/ (2认同)