typescript条件类型有哪些

条件类型允许基于条件动态创建类型,分为两种:T extends U ? X : Y,检查 T 是否可以赋值给 U,可赋值返回 X,否则返回 Y。T extends U = true ? X : Y,检查 T 是否严格等于 U,相等返回 X,否则返回 Y。条件类型用于类型守卫、类型转换和创建通用函数,但仅适用于类型变量。

typescript条件类型有哪些

TypeScript 条件类型

TypeScript 中的条件类型是一种高级特性,允许开发者基于类型谓词动态创建新的类型。通过使用条件类型,可以创建复杂的类型,这些类型会根据特定的条件而改变。

有哪些条件类型?

TypeScript 中有以下两种主要的条件类型:

T extends U ? X : YT extends U = true ? X : Y

条件类型如何工作?

T extends U ? X : Y

检查类型变量 T 是否可以赋值给类型 U。如果可以,则返回类型 X。如果不可以,则返回类型 Y

T extends U = true ? X : Y

检查类型变量 T 是否可以严格等于类型 U。如果相等,则返回类型 X。如果不相等,则返回类型 Y

示例

以下是一些条件类型的示例:

type IsString = T extends string ? true : false; // 检查 T 是否是 string 类型type IsArray = T extends Array ? true : false; // 检查 T 是否是 Array 类型type NotNull = T extends null | undefined ? never : T; // 从 T 中排除 null 和 undefined

用法

条件类型可以用于各种场景,例如:

类型守卫:检查一个值是否属于特定类型。类型转换:将一个类型转换为另一个类型。创建通用函数:编写适用于各种类型的函数。

注意

条件类型只能用于类型变量,不能用于值。条件类型的结果类型必须是 TypeScript 中的合法类型。

以上就是typescript条件类型有哪些的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1492299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 14:41:48
下一篇 2025年12月19日 14:41:57

相关推荐

  • 优化HTML页面box-shadow显示:解决滚动内容区域阴影不完整问题

    在使用bootstrap构建页面时,将`box-shadow`直接应用于`body`元素可能导致当页面内容超出浏览器视口高度时,阴影效果在滚动时显示不完整。本教程将深入分析这一问题,并提供一个通过调整css样式,将`box-shadow`应用到`main`内容区域的解决方案,以确保阴影效果能随着内容…

    2025年12月23日
    000
  • 在pycharm中怎么运行html文件夹_pycharm运html文件夹方法【指南】

    使用PyCharm运行多HTML文件夹可通过四种方法:一、右键单个HTML文件选择Open in Browser预览;二、在终端执行python -m http.server 8000启动本地服务器,浏览器访问http://localhost:8000查看整个文件夹;三、安装Live Server插…

    2025年12月23日
    000
  • html5文件如何实现CAD图纸预览 html5文件专业图纸的在线查看

    可将CAD图纸转换为WebGL、SVG、PDF或使用专用SDK实现网页展示。首先选择适合图纸类型的转换方式,如三维模型用glTF配合Three.js,二维图转SVG,或通过Autodesk Forge直接解析原生格式,也可导出PDF结合PDF.js嵌入网页,从而让用户无需专业软件即可在线查看并交互。…

    2025年12月23日
    000
  • HTML文档的元数据应该写在哪个部分

    答案:HTML文档的元数据应置于标签内,包括、、等元素,用于定义页面信息、优化SEO、提升用户体验和性能。这些元数据虽不直接显示,但对搜索引擎抓取、移动端适配、字符编码解析、社交媒体分享及页面加载速度至关重要。尽管HTML5允许和在起始位置出现,但为确保兼容性和规范性,仍推荐统一放在中。(注:实际字…

    2025年12月22日
    000
  • 为什么需要学习JavaScript_它如何成为现代网页开发的核心语言呢

    JavaScript是现代网页开发的核心语言,因其唯一能在浏览器原生运行、实现动态交互、拥有跨平台生态及低门槛高深度的特性而不可替代。 JavaScript 是现代网页开发绕不开的核心语言,不是因为它“最强大”,而是因为它唯一能直接在浏览器里运行、实时响应用户操作、动态改变页面内容 它让网页真正“活…

    2025年12月21日
    000
  • JS注解怎么标注只读属性_ JS对象只读属性的注解方法与使用

    使用JSDoc的@readonly可标注只读属性以提升开发体验,但需结合Object.defineProperty设置writable为false才能实现运行时保护,TypeScript的readonly关键字则能在编译阶段阻止修改,提供更强的类型检查。 在JavaScript中,给对象属性设置只读…

    2025年12月21日
    000
  • JS注解怎么标注复杂对象_ JS复杂对象结构的注解书写方式

    使用JSDoc可为JavaScript复杂对象提供类型提示。1. 用@param标注嵌套对象结构,如user.id、user.profile.email;2. 用@typedef定义可复用类型,如UserProfile和User;3. 支持数组、可选属性和联合类型,如User[]、string|nu…

    2025年12月21日
    000
  • TypeScript教程:动态引用当前类名及其静态方法

    本教程旨在解决typescript中硬编码类名带来的维护问题。我们将探讨如何利用`this.constructor`在实例方法中动态调用类的静态方法,以及如何使用`this`作为返回类型来确保方法返回当前类的实例,从而提高代码的可维护性和重构效率。 引言:硬编码类名带来的挑战 在TypeScript…

    2025年12月21日
    000
  • 如何实现一个基于Web Share API的跨平台分享功能?

    Web Share API 可实现跨平台分享,需先检测支持性,调用 navigator.share() 并提供降级方案,如复制链接或显示二维码,确保在 HTTPS 环境下由用户触发。 Web Share API 是现代浏览器提供的一项轻量级功能,允许网页直接调用系统原生的分享界面,将文本、链接或文件…

    2025年12月20日
    000
  • TypeScript教程:使用泛型和映射类型统一转换对象属性类型为any

    本文深入探讨在TypeScript中如何利用泛型和映射类型,将一个现有对象的属性键保留,但将其所有属性类型统一转换为any。我们将详细介绍两种核心方法:通过自定义映射类型实现,以及利用TypeScript内置的Record工具类型,并通过清晰的代码示例演示其具体实现和应用,旨在帮助开发者高效地进行类…

    2025年12月20日
    000
  • typescript小白入门教程

    TypeScript 是一种扩展 JavaScript 的语言,增加了类型检查和面向对象编程特性,提升了代码可靠性和可维护性。入门教程包括:安装 TypeScript,创建项目,编写代码,编译,运行。基础语法涉及类型注释、接口和类。优点包括提高代码质量、增强 IDE 支持、确保兼容性和提高协作效率。…

    2025年12月19日
    000
  • vue升级typescript教程

    要将 Vue 应用程序升级到 TypeScript,需要遵循六个步骤:安装 TypeScript创建 tsconfig.json 文件将 .vue 文件转换为 .ts 文件定义 TypeScript 接口编译 TypeScript更新依赖项 Vue 升级 TypeScript 教程 将 Vue 升级…

    2025年12月19日
    000
  • typescript学习方法_零基础学习typescript的方法

    零基础学习 TypeScript 的方法:理解 JavaScript 基础安装 TypeScript学习 TypeScript 语法使用 TypeScript 编译器探索 TypeScript 特性练习和构建项目利用学习资源保持耐心并寻求帮助 零基础学习 TypeScript 的方法 TypeScr…

    2025年12月19日
    000
  • typescript教程入门

    TypeScript 是一种扩展了 JavaScript 的开源编程语言,允许开发者使用类型系统来编写 JavaScript 代码,以提高代码质量和可维护性。其主要优点包括:静态类型检查,避免运行时问题。协助代码重构,提高安全性和易用性。增强代码可读性和文档性。提供广泛的工具支持,包括编辑器集成、编…

    2025年12月19日
    000
  • typescript超详细入门教程

    TypeScript 是一种由 Microsoft 开发的扩展 JavaScript 的强类型语言,通过添加类型注解帮助 JavaScript 开发人员编写可靠且易于维护的代码。可以按照以下步骤开始使用 TypeScript:全局安装或在项目文件夹中安装 TypeScript。创建具有 .ts 扩展…

    2025年12月19日
    000
  • typescript基础入门教程

    TypeScript 是一种 JavaScript 超集,具有类型系统和完善的工具支持,可提高开发效率和代码质量。其优势包括:早期错误发现,防止运行时错误增强代码可读性,促进重用编辑器集成、自动完成功能和代码重构与 JavaScript 兼容,可以在所有支持 JavaScript 的平台上运行 Ty…

    2025年12月19日
    000
  • typescript最佳入门教程

    TypeScript 是一种流行的 JavaScript 超集语言,提供类型检查、静态分析和高级功能。入门步骤:使用 npm 或 Yarn 安装 TypeScript。创建并初始化 TypeScript 项目。编写 TypeScript 代码并类型注释变量。使用 TypeScript 编译器编译代码…

    2025年12月19日
    000
  • typescript详细讲解

    TypeScript 是一种由 Microsoft 开发的编程语言,扩展了 JavaScript,增加了类型系统和面向对象编程特性。它提供以下优点:提高代码质量和可读性增强可维护性提升开发效率与 JavaScript 兼容广泛应用于大型应用程序开发、前端开发、后端开发和移动开发等场景。 TypeSc…

    2025年12月19日
    000
  • typescript语法教程

    TypeScript 是一种由 Microsoft 开发的强类型 JavaScript 超集,允许开发者构建更加健壮且维护性更好的 JavaScript 应用程序。它具有以下核心特性:强类型系统:强制为变量、函数和类指定类型,消除类型错误。类型注解:用于指定变量、函数和类的类型。接口:定义对象必须实…

    2025年12月19日
    000
  • 怎么用typescript_typescript该怎么学习

    学习 TypeScript 需遵循以下步骤:1. 掌握 JavaScript 基础知识。2. 安装 TypeScript 编译器。3. 学习 TypeScript 语法,包括类型注释、接口和枚举等概念。4. 构建项目以实践技能。5. 利用 TypeScript 工具生态系统。6. 阅读官方文档。7.…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信