0Pricing
TypeScript Academy · Lección

Readonly, Exclude, Extract y NonNullable

Aplique más tipos de utilidad para la inmutabilidad y el filtrado.

Readonly, Exclude, Extract y NonNullable es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 4 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.

Bienvenida

La biblioteca estándar de TypeScript incluye varios tipos de utilidad además de Partial, Required, Pick y Omit. Esta lección aborda Readonly, Exclude, Extract y NonNullable.

Readonly<T>

Convierte todas las propiedades de T en de solo lectura. Impide reasignar cualquier propiedad después de la creación.
interface Config { host: string; port: number; }
const cfg: Readonly<Config> = { host: 'localhost', port: 3000 };
// cfg.host = 'remote'; // Error!

Exclude<T, U>

Elimina de la unión T todos los miembros asignables a U.
type Status = 'pending' | 'active' | 'banned' | 'deleted';
type ActiveStatus = Exclude<Status, 'banned' | 'deleted'>;
// 'pending' | 'active'

Extract<T, U>

Conserva únicamente los miembros de la unión T que son asignables a U. Es lo contrario de Exclude.
type StringOrNumber = string | number | boolean;
type JustStrNum = Extract<StringOrNumber, string | number>;
// string | number

NonNullable<T>

Elimina null y undefined de T.
type MaybeString = string | null | undefined;
type DefinitelyString = NonNullable<MaybeString>; // string

ReturnType<T>

Extrae el tipo de retorno de un tipo de función T.
function fetchUser() { return { id: 1, name: 'Alice' }; }
type User = ReturnType<typeof fetchUser>; // { id: number; name: string }

Parameters<T>

Extrae los tipos de los parámetros de una función como una tupla.
function add(a: number, b: number): number { return a + b; }
type AddParams = Parameters<typeof add>; // [number, number]

InstanceType<T>

Obtiene el tipo de instancia producido por un tipo de función constructora.
class HttpClient { get(url: string) { return fetch(url); } }
type Client = InstanceType<typeof HttpClient>; // HttpClient

Awaited<T>

Desenvuelve tipos Promise anidados.
type A = Awaited<Promise<string>>;          // string
type B = Awaited<Promise<Promise<number>>>;  // number

Uso conjunto de varios tipos de utilidad

Encadene tipos de utilidad para realizar transformaciones complejas.
type SafeInput<T> = Readonly<Partial<NonNullable<T>>>;

Los tipos de utilidad son solo alias de tipo

Cada tipo de utilidad integrado se implementa mediante tipos mapeados, tipos condicionales e infer. Puede crear los suyos propios.

Comprobación rápida

¿Qué produce `Exclude<'a' | 'b' | 'c', 'b'>`?

Resumen

Readonly impide la mutación. Exclude elimina miembros de una unión. Extract conserva los miembros coincidentes. NonNullable elimina los valores anulables. ReturnType, Parameters e InstanceType extraen información de tipos de funciones y clases.

Preguntas frecuentes

¿La lección «Readonly, Exclude, Extract y NonNullable» es gratis?

Sí — el texto completo de «Readonly, Exclude, Extract y NonNullable» 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 «Readonly, Exclude, Extract y NonNullable»?

Aplique más tipos de utilidad para la inmutabilidad y el filtrado. 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 4 de 4.

¿Cuánto tiempo toma la lección «Readonly, Exclude, Extract y NonNullable»?

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

  1. Partial y Required: alternancia de opcionalidad
  2. Pick y Omit: selección de propiedades
  3. Record: asignación de claves a tipos de valores
  4. Readonly, Exclude, Extract y NonNullable
← Volver a TypeScript Academy