typescript - Typescript 在不使用泛型类型的情况下推断泛型类型
问题描述
考虑以下代码:
interface IQuery<TReturn = any> {}
export type ExtractGeneric<T> = T extends IQuery<infer R> ? R : never;
class MyQuery implements IQuery<string> {}
type extractedGenericType = ExtractGeneric<MyQuery>;
为什么编译器不够聪明,无法知道它extractedGenericType
不是类型string
?只要我TReturn
在IQuery
编译器中使用就可以推断出类型:
interface IQuery<TReturn = any> {
_type: TReturn;
}
export type ExtractGeneric<T> = T extends IQuery<infer R> ? R : never;
class MyQuery implements IQuery<string> {
_type: string = "";
}
type extractedType = ExtractGeneric<MyQuery>;
不幸的是,在我的情况下,在我的界面某处实际使用该类型不是一个选项。任何解决方法?
解决方案
推荐阅读
- oracle - 我正在尝试使用 sql developer 删除 Oracle 中的 dbms_jobs。
- javascript - 选中复选框后的新 Dropbox
- php - Woocommerce 购物车刷新
- sql-server - 将 CSV 导入 SQL Server 时无法在输入文件中找到模式
- javascript - 反应:TypeError:无法读取未定义的属性“名称”
- sql-server - 索引优化排除特定表
- coq - 如何将 Coq 的 Z 提取为 Haskell 的整数
- wpf - 通用 ReactiveUserControl“无法在设计视图中编辑”
- javascript - 当页面加载时,给我 url - Firefox 扩展
- php - 作曲家未找到 PHP 包版本,但它存在于我的 packagegist 页面中