typescript - 是否可以将泛型类型作为泛型参数传递?
问题描述
只需传递泛型类型,如callback
:
type FUNC<ARG,RET, F> = (arg: ARG) => F<RET>;
type PROMISE<T> = Promise<T>;
type IDENT<T> = T;
type A = FUNC<number, void, IDENT>;
type A_PROMISE = FUNC<number, void, PROMISE>;
这可能吗?
解决方案
目前是不可能的。早在 2014 年就有一次讨论。请参阅这个问题。
如果您的意图是限制返回类型,您可以:
type FUNC<ARG,RET extends Promise<any>> = (arg: ARG) => RET;
要取回包装类型,您可以:
type PromiseType<T> = T extends Promise<infer T> ? T : never
type A = Promise<string>
type B = PromiseType<A> // string
推荐阅读
- java - 如何在 java/android 中获取文件路径,(getPath,替代编写方法方法导致应用程序崩溃)
- sql-server - 如何改进这种匹配模式?
- git - 在准备初始发布时保留早期提交历史
- c# - 从 ASP.NET Core 2.1 中的类库导入 Razor 视图时,第一次请求很慢
- ruby - 为什么我从类中调用 setter 方法时可以更改方法名称?
- excel - 通过循环随机填充列
- laravel - psql SQL STATE[08006] 用户的密码验证失败。拉拉维尔
- kubernetes - 将多个 k8s 自定义组合为一个
- java - 杰克逊的洗涤器
- reactjs - 如何在 Jest 中监视默认道具功能