1 Star 0 Fork 13

xiang/grammarLearning

forked from 韩旭明/grammarLearning 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
12_泛型_5、多泛型关联.ts 1.12 KB
一键复制 编辑 原始数据 按行查看 历史
韩旭明 提交于 2023-01-27 16:56 . 修改说明
/**
* 不仅可以同时传入多个泛型参数,还可以让这几个泛型参数之间也存在联系。
*
* 先看一个简单的场景,条件类型下的多泛型参数:
* 这个例子表明,多泛型参数 其实就像 接受更多参数的函数,
* 其内部的运行逻辑(类型操作)会更加抽象,
* 表现在 参数(泛型参数)需要进行的 逻辑运算(类型操作)会更加复杂
*/
type Conditional<Type, Condition, TruthyResult, FalsyResult> =
Type extends Condition ? TruthyResult : FalsyResult;
// "passed!"
type Result1 = Conditional<'hanxuming', string, 'passed!', 'rejected!'>;
// "rejected!"
type Result2 = Conditional<'hanxuming', boolean, 'passed!', 'rejected!'>;
/**
* 多个泛型参数之间的关联,其实指的即是:在后续泛型参数中,使用前面的泛型参数作为约束或默认值:
* 多泛型关联在一些 复杂的工具类型 中非常常见
*/
type ProcessInput<
Input,
SecondInput extends Input = Input,
ThirdInput extends Input = SecondInput
> = number;
//export {}:解决“无法重新声明块范围变量”错误提示问题
export { }
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/liaozhixiang/grammar-learning.git
git@gitee.com:liaozhixiang/grammar-learning.git
liaozhixiang
grammar-learning
grammarLearning
master

搜索帮助