打字脚本中的高阶文字功能? [英] Higher-order type functions in TypeScript?

查看:8
本文介绍了打字脚本中的高阶文字功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请考虑以下伪代码,这些伪代码试图定义具有函数类型参数的高阶类型函数M<?>

type HigherOrderTypeFn<T, M<?>> = T extends (...)
  ? M<T>
  : never;

M<?>是语法错误的打字脚本,但将类型签名声明为HigherOrderTypeFn<T, M>会在第二行产生错误Type 'M' is not generic. ts(2315)

假设这样的类型当前在TS中不可表示,我是否正确?

推荐答案

您说得对,它当前无法在打字稿中表示。有一个长期开放的GitHub特性请求microsoft/TypeScript#1213,它的标题应该类似于"支持更高类型的类型",但目前的标题是"允许其他参数类中的类是参数的"。

在讨论中有一些关于如何在当前语言中模拟这种更高级类型的想法(有关具体示例,请参阅this comment),但在我看来,它们可能不属于产品代码。如果您有一些要实现的特定结构,也许可以提出一些合适的建议。

但在任何情况下,如果您想要增加这种情况发生的可能性(很可能是可以忽略不计的,遗憾的是),您可能想要转到那个问题,给它一个👍和/或描述您的用例,如果您认为它与现有的用例相比特别引人注目。好的,希望这会有帮助;祝你好运!

这篇关于打字脚本中的高阶文字功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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