TypeScript Academy · Lección

Parámetros de tipo predeterminados

Proporcione tipos alternativos cuando no se indique ningún argumento.

Lección 4 de 413 pasos

Parámetros de tipo predeterminados 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

Los parámetros de tipo predeterminados proporcionan un tipo alternativo cuando quien realiza la llamada no especifica un argumento de tipo. Hacen que las API genéricas sean más fáciles de usar.

Sintaxis de los valores predeterminados

Añada `= DefaultType` después del nombre del parámetro de tipo para establecer un valor predeterminado.
interface Container<T = string> {
  value: T;
}
const c: Container = { value: 'hello' }; // T defaults to string
const n: Container<number> = { value: 42 };

Valores predeterminados en funciones genéricas

Los parámetros de tipo de las funciones también pueden tener valores predeterminados, aunque son menos comunes porque TypeScript suele inferir el tipo.
function createList<T = string>(): T[] { return []; }
const list = createList(); // T is string by default

Valores predeterminados con restricciones

Un parámetro de tipo puede tener tanto una restricción como un valor predeterminado. El valor predeterminado debe cumplir la restricción.
interface Event<T extends object = Record<string, unknown>> {
  type: string;
  payload: T;
}

Valores predeterminados en componentes similares a React

Los parámetros de tipo predeterminados son habituales en los genéricos de bibliotecas de UI para las props de los componentes.
interface SelectProps<T = string> {
  options: T[];
  value: T;
  onChange: (val: T) => void;
}

Varios valores predeterminados

Cada uno de varios parámetros de tipo puede tener su propio valor predeterminado.
type Pair<A = string, B = number> = { first: A; second: B };
const p: Pair = { first: 'hello', second: 42 }; // A=string, B=number

Los parámetros de tipo posteriores también necesitan valores predeterminados

Si desea utilizar un valor predeterminado para un parámetro de tipo posterior, debe especificar todos los parámetros anteriores que no tengan valores predeterminados.
type Map<K = string, V = unknown> = Record<K extends string ? K : string, V>;
const m: Map = {}; // K=string, V=unknown by default

Cuándo ignora TypeScript el valor predeterminado

Si TypeScript puede inferir el argumento de tipo a partir del contexto, utiliza el tipo inferido aunque se haya proporcionado un valor predeterminado.
function wrap<T = string>(val: T): T { return val; }
const n = wrap(42); // T is number, not string (inferred)

Anulaciones explícitas

Proporcionar un argumento de tipo explícito siempre anula el valor predeterminado.
interface Box<T = string> { item: T; }
const numBox: Box<number> = { item: 100 }; // T explicitly number

Valores predeterminados en genéricos de clases

Las clases genéricas también pueden tener parámetros de tipo predeterminados.
class Stack<T = unknown> {
  private items: T[] = [];
  push(item: T) { this.items.push(item); }
  pop(): T | undefined { return this.items.pop(); }
}

Los valores predeterminados facilitan el uso de las bibliotecas genéricas

Los autores de bibliotecas utilizan parámetros de tipo predeterminados para reducir el código repetitivo que quienes realizan las llamadas deben escribir en los casos de uso habituales.

Comprobación rápida

Dada `interface Box`, ¿cuál es el tipo de `.value` en `const b: Box = { value: 99 }`?

Resumen

Los parámetros de tipo predeterminados (T = DefaultType) proporcionan tipos alternativos cuando quien realiza la llamada no especifica ninguno. Son especialmente útiles en interfaces, definiciones de clases y API de bibliotecas para reducir el código repetitivo del lado de quien realiza la llamada.
Gratis para empezar

Aprende TypeScript con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
101
Lecciones
352

Preguntas frecuentes

¿La lección «Parámetros de tipo predeterminados» es gratis?

Sí — el texto completo de «Parámetros de tipo predeterminados» 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 «Parámetros de tipo predeterminados»?

Proporcione tipos alternativos cuando no se indique ningún argumento. 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 «Parámetros de tipo predeterminados»?

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. Funciones genéricas: parámetros de tipo
  2. Interfaces y alias de tipos genéricos
  3. Restricciones genéricas con extends
  4. Parámetros de tipo predeterminados
← Volver a TypeScript Academy