TypeScript-条件和分布式条件类型

简介: TypeScript-条件和分布式条件类型

条件类型(三目运算)


判断前面一个类型是否是后面一个类型或者继承于后面一个类型 如果是就返回第一个结果, 如果不是就返回第二个结果 语法: T extends U ? X : Y;

type MyType<T> = T extends string ? string : any;
type res = MyType<boolean>




分布式条件类型

被检测类型是一个联合类型的时候, 该条件类型就被称之为分布式条件类型

type MyType<T> = T extends any ? T : never;
type res = MyType<string | number | boolean>;



应用场景

T 中剔除可以赋值给 U 的类型

type MyType<T, U> = T extends U ? never : T;
type res = MyType<string | number | boolean, number>

像如上的这种需求比较常用 TS 内部其实已经封装了对于的方法Exclude

type MyType<T, U> = T extends U ? never : T;
type res = Exclude<string | number | boolean, number>


提取 T 中可以赋值给 U 的类型Extract

type MyType<T, U> = T extends U ? never : T;
type res = Extract<string | number | boolean, number | string>


从 T 中剔除 nullundefinedNonNullable

type MyType<T, U> = T extends U ? never : T;
type res = NonNullable<string | null | boolean | undefined>


获取函数返回值类型ReturnType

type res = ReturnType<(() => number)>


获取一个类的构造函数参数组成的元组类型ConstructorParameters

class Person {
    constructor(name: string, age: number) {
    }
}
type res = ConstructorParameters<typeof Person>;


获得函数的参数类型组成的元组类型Parameters

function say(name: string, age: number, gender: boolean) {
}
type res = Parameters<typeof say>;


最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

相关文章
|
3月前
|
JavaScript 前端开发
揭秘 TypeScript 条件类型:超越简单类型检查
揭秘 TypeScript 条件类型:超越简单类型检查
|
3月前
|
JavaScript 安全 索引
TypeScript 高级类型工具:Partial, Required, Record 的妙用与陷阱
TypeScript 高级类型工具:Partial, Required, Record 的妙用与陷阱
|
3月前
|
JavaScript 安全 IDE
TypeScript 类型体操:别让 `any` 毁了你的安全网!
TypeScript 类型体操:别让 `any` 毁了你的安全网!
|
3月前
|
JavaScript 安全 编译器
TypeScript 类型守卫:让你的类型系统更智能
TypeScript 类型守卫:让你的类型系统更智能
|
8月前
|
存储 安全 JavaScript
TypeScript-内置应用程序类型-Recode
通过使用 `Record` 类型,开发者可以显著提升代码的安全性和可维护性。无论是配置对象、字典结构还是动态表单,`Record` 类型都提供了一个简洁、类型安全的解决方案。
373 82
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
274 0
|
JavaScript 前端开发 开发者
深入理解TypeScript:类型系统与实用技巧
【10月更文挑战第8天】深入理解TypeScript:类型系统与实用技巧
|
存储 JavaScript
typeScript进阶(11)_元组类型
本文介绍了TypeScript中的元组(Tuple)类型,它是一种特殊的数组类型,可以存储不同类型的元素。文章通过示例展示了如何声明元组类型以及如何给元组赋值。元组类型在定义时需要指定数组中每一项的类型,且在赋值时必须满足这些类型约束。此外,还探讨了如何给元组类型添加额外的元素,这些元素必须符合元组类型中定义的类型联合。
158 0
|
JavaScript 前端开发 安全
使用 TypeScript 加强 React 组件的类型安全
【10月更文挑战第1天】使用 TypeScript 加强 React 组件的类型安全
282 106
|
11月前
|
设计模式 JavaScript 安全
TypeScript性能优化及代码质量提升的重要性、方法与策略,包括合理使用类型注解、减少类型断言、优化模块导入导出、遵循编码规范、加强代码注释等
本文深入探讨了TypeScript性能优化及代码质量提升的重要性、方法与策略,包括合理使用类型注解、减少类型断言、优化模块导入导出、遵循编码规范、加强代码注释等,旨在帮助开发者在保证代码质量的同时,实现高效的性能优化,提升用户体验和项目稳定性。
309 6