typescript - 如何键入以防止 Typescript 中的返回值

标签 typescript typescript-typings

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

正如您在 this example 中看到的那样,这两种类型都不够:

type VoidReturner = () => void;
type UndefReturner = () => undefined;
type NeverReturner = () => never;
  • void只告诉用户返回值不重要(忽略类型?)
  • undefined要求开发者明确返回 undefined
  • never是猜测,和void (如示例 1 返回 {} )不匹配。
  • 最佳答案

    Typescript 可以帮助您限制可以返回的类型。您可以返回的具体内容是:

    无效:

  • 没有(没有返回语句)
  • 未定义(请注意,仅调用 return; 返回 undefined )
  • null(如果 --strictNullChecks 被禁用)

  • 未定义:

    您只能返回 undefined !再次,只有 return;意味着返回 undefined .

    这也意味着所有代码路径都必须有一个 return 语句。如果没有代码路径,您就无法拥有代码路径。

    从不:
    never有点特别。如果函数的返回类型为 never它绝不能返回。只有当函数中的每个代码路径都满足以下任一条件时才会发生这种情况:
  • 抛出错误
  • 或者有一个无限循环。

  • 我觉得你想禁止提前终止一个功能,但那是不可能的。

    关于typescript - 如何键入以防止 Typescript 中的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60524291/

    相关文章:

    typescript - 将属性作为参数传递并在 typescript 的函数内更新它

    javascript - 如何将类导出为根模块?

    javascript - 对 3 个嵌套数组感到困惑

    TypeScript 函数在不期望的情况下通过类型检查

    javascript - 简单js模块的定义文件

    typescript - 为什么我不能使用常量中的值作为自定义类型定义?

    javascript - 为什么 TypeScript 会为类生成 IIFE?

    node.js - 在 Angular2 中导入模块

    typescript - 如何手动更新已弃用的打字包

    javascript - Angular 5 : adding types to external JS file