1 Star 0 Fork 13

xiang/grammarLearning

forked from 韩旭明/grammarLearning 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
12_泛型_2、类型别名中的泛型.ts 1.15 KB
一键复制 编辑 原始数据 按行查看 历史
韩旭明 提交于 2023-01-27 16:33 . 修改目录
/**
* 在 类型别名type 中,如果声明了泛型坑位,那其实就 等价于 一个接受参数的函数:
*
* 下面这个 类型别名的本质 就是一个函数,T就是它的变量,返回值则是一个包含 T 的联合类型
*/
type Factory<T> = T | number | string;
//类型别名 中的泛型大多是用来进行 工具类型 封装,比如在 《11_类型工具_7、映射类型.ts》 中学习的工具类型:
type Stringify<T> = {
[K in keyof T]: string;
};
type Clone<T> = {
[K in keyof T]: T[K];
};
/**
* 一个 TypeScript 的 内置工具类型Partial
* 工具类型 Partial 会将传入的对象类型复制一份,但会额外添加一个 ? 可选,
* 也就是说 可以获得了一个 属性均为可选 的克隆版
*/
type Partial<T> = {
[P in keyof T]?: T[P];
};
interface IFoo {
prop1: string;
prop2: number;
prop3: boolean;
prop4: () => void;
}
type PartialIFoo = Partial<IFoo>;
// 等价于
interface PartialIFooA {
prop1?: string;
prop2?: number;
prop3?: boolean;
prop4?: () => void;
}
//export {}:解决“无法重新声明块范围变量”错误提示问题
export { }
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/liaozhixiang/grammar-learning.git
git@gitee.com:liaozhixiang/grammar-learning.git
liaozhixiang
grammar-learning
grammarLearning
master

搜索帮助