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

TypeScript索引访问类型详解

在 TypeScript 中,Indexed Access Types(索引访问类型)是一种通过索引来获取其他类型中特定属性的类型的方式。它类似于在 JavaScript 中通过索引访问对象属性的操作,但用于类型层面。

基本语法

Type[Key]

Type:可以是任意类型(对象类型、接口、元组等)

Key:必须是 Type 的有效索引键(可以是字符串、数字或符号字面量类型)

基本用法

1.访问对象类型的属性

interface Person {name: string;age: number;address: {street: string;city: string;};
}// 获取 name 属性的类型
type NameType = Person["name"]; // string// 获取 age 属性的类型  
type AgeType = Person["age"]; // number// 获取嵌套属性的类型
type CityType = Person["address"]["city"]; // string

2.使用联合类型索引

type PersonProperty = Person["name" | "age"]; // string | number// 获取所有属性的类型联合
type AllProperties = Person[keyof Person]; // string | number | { street: string; city: string }

3.访问数组和元组类型

type StringArray = string[];
type ArrayElement = StringArray[number]; // string

type Tuple = [string, number, boolean];
type FirstElement = Tuple[0]; // string
type SecondElement = Tuple[1]; // number
type AllElements = Tuple[number]; // string | number | boolean

注意事项

1.类型安全性:TypeScript 会确保索引键是有效的

type Invalid = Person["invalid"]; // 错误:类型"Person"上不存在属性"invalid"

2.动态索引:可以使用 keyof 获取所有可能的键

type PersonKeys = keyof Person; // "name" | "age" | "address"

3.嵌套访问:可以链式访问嵌套属性

type StreetType = Person["address"]["street"]; // string

总结

Indexed Access Types 是 TypeScript 类型系统中非常强大的特性,它允许你:

1.从复杂类型中提取特定属性的类型

2.创建基于现有类型的新类型

3.实现类型安全的属性访问操作

4.构建更灵活和可重用的类型定义

http://www.zskr.cn/news/79.html

相关文章:

  • 安全不是一个功能-而是一个地基
  • 你的错误处理一团糟-是时候修复它了-️
  • 你的测试又慢又不可靠-因为你测错了东西
  • 国内人力资源信息管理软件排行:选红海云一体化人力HR系统
  • AI Compass前沿速览:字节Seedream4.0、Qwen3-Max、EmbeddingGemma、OneCAT多模态、rStar2-Agent
  • 408 Request Timeout:请求超时,服务器等待客户端发送请求的时间过长。
  • Avalonia 学习笔记01. Images Buttons(图片与按钮) (转载)
  • 【触想智能】工控一体机和PLC一体机的区别你知道吗?
  • XeLaTeX 介绍
  • AE苹果手机iPhone 17展示动画片头模板 App Promo Phone 17 Pro
  • 工业硅2511
  • 人工智能时代的合规性:为什么强大的 CI/CD 基础很重要
  • 如何优雅地清理Hugging Face缓存到本地的模型文件(2025最新版)
  • Linux 进程上下文切换详解