Tipos de acceso indexado
Consulte los tipos de propiedades mediante la sintaxis T[K].
Tipos de acceso indexado es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 4 lecciones en total.
Consultar tipos de propiedades
Los tipos de acceso indexado permiten consultar el tipo de una propiedad mediante la sintaxis de corchetes en una posición de tipo: Obj['prop']. Es como leer un valor, pero en el nivel de tipos.
Acceso indexado básico
Indexe un tipo con una clave literal para extraer el tipo de esa propiedad. User['name'] proporciona string.
interface User { id: number; name: string }
type NameType = User["name"] // string
const n: NameType = "Ada"
console.log(n)Por qué no escribir simplemente el tipo
El acceso indexado mantiene los tipos sincronizados. Si User.name cambia de string a otro tipo, todos los usos de User['name'] se actualizan automáticamente, sin modificaciones manuales.
interface Product { price: { amount: number; currency: string } }
type Price = Product["price"] // { amount: number; currency: string }
const p: Price = { amount: 10, currency: "USD" }
console.log(p)Acceder con una unión de claves
Indexe con una unión de claves para obtener una unión de sus tipos de valor. User['id' | 'name'] produce number | string.
interface User { id: number; name: string }
type IdOrName = User["id" | "name"] // number | string
const v: IdOrName = 5
console.log(v)Obj[keyof Obj] para todos los valores
Indexe con keyof Obj para obtener una unión de todos los tipos de valor del objeto, es decir, el conjunto completo de tipos de valor.
interface Config { host: string; port: number; secure: boolean }
type Values = Config[keyof Config] // string | number | boolean
const v: Values = true
console.log(v)Tipo de elemento de un array con [number]
En un tipo array, indexe con number para obtener su tipo de elemento. string[][number] es string.
type Names = string[]
type Item = Names[number] // string
const x: Item = "Ada"
console.log(x)Tipo de elemento de una tupla
Indexar una tupla con number proporciona la unión de todos sus tipos de elemento, lo que resulta útil para derivar un tipo de valor a partir de una lista fija.
type Pair = [string, number]
type Element = Pair[number] // string | number
const e: Element = 42
console.log(e)Combinación con typeof
Obtenga el tipo de un valor mediante typeof. Junto con [number] aplicado a un array as const, esto deriva una unión de los valores literales del array.
const colors = ["red", "green", "blue"] as const
type Color = typeof colors[number] // "red" | "green" | "blue"
const c: Color = "green"
console.log(c)Acceso indexado anidado
Encadene consultas para profundizar en tipos anidados. Cada corchete desciende un nivel en la estructura.
interface Data { user: { profile: { age: number } } }
type Age = Data["user"]["profile"]["age"] // number
const a: Age = 36
console.log(a)Acceso indexado en genéricos
El patrón T[K] con K extends keyof T es la base de los getters con seguridad de tipos: el tipo de retorno es exactamente el tipo de la propiedad consultada.
function get<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key]
}
const port = get({ host: "x", port: 80 }, "port")
console.log(port) // 80, typed as numberUna derivación práctica
El acceso indexado evita duplicar tipos: derive el tipo de los argumentos de una función directamente de un objeto de dominio, en lugar de volver a declararlo.
interface Order { items: { sku: string; qty: number }[] }
type LineItem = Order["items"][number] // { sku: string; qty: number }
const li: LineItem = { sku: "A1", qty: 2 }
console.log(li)Comprobación rápida
Compruebe su comprensión de los tipos de acceso indexado.
Resumen
Los tipos de acceso indexado (Obj['prop']) consultan el tipo de una propiedad y se mantienen sincronizados con el origen. Utilice una unión de claves para obtener una unión de tipos de valores, keyof Obj para todos los valores y number para los tipos de elementos de arrays o tuplas. Encadene corchetes para consultas anidadas y combine el acceso con typeof y genéricos (T[K]) para realizar derivaciones con seguridad de tipos.
Preguntas frecuentes
¿La lección «Tipos de acceso indexado» es gratis?
Sí — el texto completo de «Tipos de acceso indexado» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Tipos de acceso indexado»?
Consulte los tipos de propiedades mediante la sintaxis T[K]. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar TypeScript Academy?
No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Tipos de acceso indexado»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?
Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- El operador de tipos typeof
- El operador de tipos keyof
- Tipos de acceso indexado
- Combinación de typeof y keyof