当前位置: 首页 > news >正文

TypeScript类型体操

以下是关于 TypeScript 类型体操 的系统梳理:


一、基础知识点
  1. 基本类型操作

    • 联合类型(Union Types)type A = string | number
    • 交叉类型(Intersection Types)type B = { a: string } & { b: number }
    • 类型别名(Type Aliases)type Point = { x: number; y: number }
    • 接口(Interfaces)interface User { name: string; age: number }
  2. 泛型(Generics)

    • 基础泛型:type Box<T> = { value: T }
    • 泛型约束:type WithId<T extends { id: string }> = T & { metadata: string }
  3. 条件类型(Conditional Types)

    • 基本语法:T extends U ? X : Y
    • 示例:type IsString<T> = T extends string ? true : false
  4. 映射类型(Mapped Types)

    • 动态生成类型:type Optional<T> = { [K in keyof T]?: T[K] }
    • 键重映射:type Getters<T> = { [K in keyof T as get${Capitalize<string & K>}]: () => T[K] }
  5. 索引类型(Index Types)

    • 键值查询:type NameType = User['name']
    • 联合键值:type Values<T> = T[keyof T]

二、进阶知识
  1. 递归类型(Recursive Types)

    • 树形结构定义:
      type TreeNode<T> = {
             
        value: T;
        children: TreeNode<T>[];
      }
      
  2. 模板字面量类型(Template Literal Types)

    • 字符串模式生成:
      type Route = `/user/${
               string}/profile`;
      type EventName = 'click' | 'hover';
      type HandlerName 

相关文章:

  • 异步读取HTTP响应体的Rust实现
  • Linux内核内存管理 ARM32内核内存布局的详细解析和案例分析
  • 面试问题总结:qt工程师/c++工程师
  • 基于 Ollama DeepSeek、Dify RAG 和 Fay 框架的高考咨询 AI 交互系统项目方案
  • 4.1刷题(链表)
  • 初学STM32系统时钟设置
  • Vue 组件 - Slot 内容分发
  • Windows搭建AI大模型应用开发环境以及踩过的坑
  • 软件测试(2):selenium 4.0 特点以及新特性
  • 数据库权限获取
  • MySQL基本查询
  • LeetCode[15]三数之和
  • OpenAI重磅回归开源!首发推理模型不限商用,直面DeepSeek挑战
  • 操作系统高频(六)linux内核
  • 交叉熵损失
  • leetcode25.k个一组翻转链表
  • (二十六)Dart 中泛型的使用与优势
  • WEB安全--SQL注入--无列名注入
  • 本地合并多个仓库,保留Commit历史
  • MyBatis choose when otherwise
  • 法学联合书单|法庭上的妇女
  • 新能源汽车,告别混乱创新
  • 福建厦门市副市长、市公安局局长陈育煌出任吉林省公安厅厅长
  • 专访|韩国世宗研究所中国研究中心主任:李在明若上台将推行均衡外交
  • 扶桑谈|从石破茂“越菲行”看日本周边外交布局战略新动向
  • 马上评丨未成年人“擦边”短视频岂能成流量密码