如何在流程中获取函数的返回类型?

2024-01-21

以此为例:

const myObj = {
    test: true,
};

type MyType = typeof myObj;

const getValue = (): MyType => {
    return myObj;
};

// how to do this??
type TheReturnType = getValue;

const nextObj: TheReturnType = {
    test: false,
};

我想提取type该函数将返回,因此我可以重用该类型。我想不出有什么办法可以得到它。上面的方法不起作用。typeof getValue将返回该函数。


流有一个$Call实用程序类型,可以获取函数的返回类型:

type TheReturnType = $Call<typeof getValue>

但是,如果您的函数接受参数,您还需要为这些参数提供类型:

type TimeoutType = $Call<typeof setTimeout, () => void, number>

如果这看起来不方便,你可以写一个ReturnType可以跳过参数需求的帮助器:

type ReturnType<F> =
  $PropertyType<$ObjMap<{ x: F }, <R>(f: (...any) => R) => R>, 'x'>

让我们使用这个:

type TheReturnType = ReturnType<typeof setTimeout>

This ReturnType助手基本上匹配ReturnTypeTypeScript 中存在助手。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在流程中获取函数的返回类型? 的相关文章

  • 如何在nodejs中使用typescript/flow而不编译它

    有人可以给我一些建议或链接来讨论我是否应该为后端捆绑 JS 我尝试用这个标题 和类似的词 搜索谷歌 但找不到任何有用的链接 只是想知道 假设我正在使用最新的 Node JS es6 ready 我应该捆绑 编译 JS 吗 如果没有 我该如何
  • 省略号在 Flow 类型声明中起什么作用?

    下面的 Flow 代码中的省略号是什么 它们的作用是什么 export type ListTypeNode kind ListType loc Location type TypeNode 这是 Flow 中的新语法 将来将指示该对象类型不
  • 流数组类型在该类型的子集上失败

    我有一个在很多不同地方使用的函数 因此它的类型非常广泛 export const stringToArrayFn accessor Function string boolean Object Array
  • flowjs:调用方法“join”。无法在混合上调用方法

    假设我有一个恒定的动物 我用它导入 import animals from animals 假设动物常数为 hoofed horses sheep goats feline lions tigers canine dogs wolves 假
  • Flowtype - 制作密封的空物体

    Flow 的文档说 When you create an object without any properties you create an unsealed object type in Flow 是否可以创建一个没有属性的密封对象
  • Flow 无法识别回调内的细化

    此代码通过了流程检查 flow function test list Array
  • 在 Flow 中输入“camel caser”:方差问题?

    尝试流链接 https flowtype org try 0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgBSAygPIByYAvGAHYCuMMYAPmAM4YBOAlrQOas69ALYAjPFyFi4cGHgCGtIQ
  • 为什么 `{ a: string }` 不能流入 `{ a?: string }`

    给定对象类型A and B两者相同 除了A的属性是可选的 为什么不能B用在什么地方A被接受吗 type A a string type B a string const x B a string is incompatible with u
  • 流类型注释和有效的 JavaScript 源

    我正在使用 Facebook 的新 Flow Type 检查系统 In Flow 遇见 Underscore http flowtype org docs underscore html看来他们改变了这段 JavaScript 代码 var
  • 多态匿名函数类型别名

    命名的类型声明之间似乎存在细微的差别function 语法与匿名函数语法 type F
  • SCSS 模块给出流程错误

    更新至Create React App 2它通过以下 import 语句支持 css 模块 import styles from myStyles module scss 然而 flow正在抱怨说 Importing from an unt
  • 为什么Flow需要对导出函数的参数进行注释?

    以下代码 流动游乐场 https flowtype org try 0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swBDACgAcBKMAbwF9UBbOAE0xgFMA6bgB5U4AJ3wBnMAF5yQA f
  • Flowtype 不断需要空检查

    我想知道如何避免这些大量的空检查 或者至少了解重点是什么 因为它似乎适得其反 如果我省略空检查 Flowtype 会给我一个错误 var myEl new MyElement if document body null error on n
  • 尝试启动 Atom/Nuclide 时未找到流

    我正在研究react native我正在使用的应用程序AtomIDE 我在打开时遇到错误Atom 我安装了babel cli and babel preset flow使用 npm 命令 npm install save dev babel
  • Flowtype 函数可能会抛出错误

    有什么方法可以明确定义函数可以抛出错误 显然任何函数都可以抛出错误 但我想明确定义一个函数被设计为抛出并且可能根本不返回值 async function falseThrow promise Promise
  • Flowtype - 字符串与字符串枚举不兼容

    我有一个来自选择输入且类型为字符串的值 但是我想将其传递到函数中 更新语言 接收带有类型别名 Language 我面临的问题是 Flow 只允许我打电话更新语言如果我明确地将我的字符串值与枚举字符串进行比较 并且我想使用像 array in
  • 流量类型问号?

    对使用 感到困惑在流动中 据我所知 感谢参数之前或之后的流类型问号 https stackoverflow com questions 47314749 flow type question mark before or after par
  • Flowtype 属性“msg”缺失为 null 或未定义

    我发现 Flow 很难用 我明白那个Array find可以返回或未定义 因此 通过阅读以下内容 github Array find on Array 引发 https github com facebook flow issues 351
  • React PropTypes 与 Flow

    PropTypes 和 Flow 涵盖相似的内容 但使用不同的方法 PropTypes 可以在运行时向您发出警告 这有助于快速找到来自服务器等的格式错误的响应 但是 Flow 似乎是未来 并且具有泛型等概念 是一个非常灵活的解决方案 Nuc
  • 如何为React hooks(useState等)做流类型注解?

    我们应该如何将 Flow 类型注释与 React hooks 一起使用 例如useState 我尝试寻找一些如何实施它们的示例 但找不到任何东西 我试过这个 const allResultsVisible setAllResultsVisi

随机推荐

  • Eclipse:缺少 Eclipse 应用程序启动配置

    我想在 eclipse 的运行 调试配置中选择 Eclipse 应用程序启动配置 用于运行 eclipse 插件 但它不存在 如何在运行 调试配置中添加 Eclipse 应用程序启动配置 我正在使用面向 Java 开发人员的 Eclipse
  • 如何将十六进制转换为十进制?

    我有不同的十六进制数据传入并存储到整数类型寄存器中 当我使用 fprint 时 我可以看到以下内容 0x3076 0x307c 但是 我想显示上述十六进制数据的十进制版本 如下所示 12406 12412 理论上 假设对于第一个值 您可以执
  • 无法将 FTP 连接到 Azure 虚拟机

    我在 Azure 中配置了 Windows Server 2012 虚拟机 当我尝试通过 FileZilla FTP 客户端连接到它时 我得到一个Could not connect to server error 到目前为止 这是我尝试过的
  • Angular.js 更新指令中的 SVG 模板

    不久前我问过 Angular js 在指令中渲染 SVG 模板 https stackoverflow com questions 19568226 angular js rendering svg templates in directi
  • 稳定基线不适用于张量流

    因此 我最近重新回到机器学习领域 并决定开始 ConnectX 的 Kaggle 课程 https www kaggle com learn intro to game ai and reinforcement learning https
  • 如何将 C# 中的标签添加到 XAML 代码中的网格中?

    我有这个模板
  • python中的二分查找算法

    我正在尝试用 python 实现二分搜索 并将其编写如下 但是 只要needle element大于数组中的最大元素 我就无法让它停止 你能帮我吗 谢谢 def binary search array needle element mid
  • 为什么不调用重写的“operator new”?

    我在VS2005中运行以下代码 include
  • 将当前对象 ($this) 转换为后代类

    我有一个类 可能需要将对象更改为进一步的后代类 这可能吗 我知道一个选择是返回它的副本 但使用子类代替 但实际修改当前对象会很好 所以 class myClass protected var function myMethod functi
  • 从 Pandas 中的日期时间 <[M8] 中删除时间

    所以我的数据框中有一个 日期 列 其中日期的格式如下 0 1998 08 26 04 00 00 如果我只想要年月日 我该如何去掉琐碎的时间 最快的方法是使用 DatetimeIndex 标准化 您首先需要将该列设为 DatetimeInd
  • Flutter Web Firebase TypeError:dart.global.firebase.firestore 不是函数

    我正在尝试在我的 flutter web 项目中使用 Firebase 但应用程序无法使用此消息运行 TypeError dart global firebase firestore is not a function at Object
  • 减少 Android studio 中的 Gradle 同步时间

    我使用的是 16GB 内存 SSD 硬盘的 Mac 每次构建 清理或打开项目时 Gradle 同步仍然需要 15 分钟以上 是否有任何 Android Studio 优化可以减少这个时间 更新 所有这些都在一定程度上有所帮助 将所有编译 c
  • 角度材质 未显示在自定义组件中

    所以我做了很多研究 但我就是无法弄清楚 我想使用 Angular 材质表单控件制作一个文本框组件 按照此tutorial https material angular io guide creating a custom form fiel
  • FluentMigrator迁移成功,但数据库没有变化

    我一定错过了一些非常基本的东西 我正在开发一个遗留项目 并且我正在尝试将 FluentMigrator 加入其中 因为我有一些有趣的数据库 我认为即将发生的变化和数据迁移将会产生很大的影响 使用此工具更容易 对于初始迁移 我只想将数据库提升
  • Hibernate @Table 注解中的动态模式

    想象一下 您在两个环境中有四个 MySQL 数据库模式 foo 产品数据库 bar 正在进行的重组foo db foo beta 测试数据库 and bar beta 新结构的测试数据库 此外 假设您有一个 Spring Boot 应用程序
  • jqgrid rowattr 不应用类

    我想根据列的值将背景颜色应用于 jqGrid 行的行 但是基本 rowattr 并未将类应用于行 下面是代码 为了简单起见 我删除了需要应用颜色的条件 jQuery employeeSalarysGrid jqGrid height 250
  • Azure 托管代理 - Visual Studio 2017

    我在 Azure 中设置了托管代理来执行 CI 构建 但在构建失败之前的 Visual Studio 构建步骤中收到以下警告 找不到 Visual Studio 版本 15 0 正在寻找最新版本 查看托管代理的文档 它们似乎没有使用 Vis
  • Matplotlib 图例中的字幕

    我正在使用 matplotlib 进行一些绘图 并且有一个图例告诉查看者这些点是用哪些传感器记录的 有多种类型的多个传感器 我希望在图例中添加字幕来告诉观众每组传感器的类型 我有一个可行的解决方案 但它有点像黑客 如下所示 创建图例时 它接
  • has_many 和belongs_to 关联的单选按钮

    我有一个 has many 和 Belongs to 关联 class Link lt ActiveRecord Base has and belongs to many categories belongs to property end
  • 如何在流程中获取函数的返回类型?

    以此为例 const myObj test true type MyType typeof myObj const getValue MyType gt return myObj how to do this type TheReturnT