0Pricing
TypeScript Academy · Lección

Pruebas de tipos con expectTypeOf y tsd

Compruebe la corrección de los tipos junto con el comportamiento en tiempo de ejecución.

Pruebas de tipos con expectTypeOf y tsd 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

Probar los tipos en sí mismos, no solo el comportamiento en tiempo de ejecución, garantiza que las utilidades de TypeScript y los tipos genéricos funcionen correctamente.

Por qué probar los tipos

Las utilidades genéricas y los tipos condicionales pueden contener errores que solo afectan a determinados argumentos de tipo. Las pruebas de tipos los detectan.

expectTypeOf de Vitest

Vitest proporciona expectTypeOf para realizar aserciones de tipos en tiempo de compilación.
import { expectTypeOf } from 'vitest';
expectTypeOf(42).toBeNumber();
expectTypeOf('hello').toBeString();

Aserción de tipos de retorno

Compruebe el tipo de retorno de una función.
import { identity } from '../src/utils';
expectTypeOf(identity(42)).toEqualTypeOf<number>();
expectTypeOf(identity('hi')).toEqualTypeOf<string>();

Biblioteca tsd

tsd es una herramienta de CLI para probar tipos en archivos de declaración de TypeScript.
npm install --save-dev tsd

Aserciones de tsd

Escriba archivos .test-d.ts con aserciones de tsd.
import { expectType, expectError } from 'tsd';
import { add } from '../src';
expectType<number>(add(1, 2));
expectError(add('a', 'b'));

Biblioteca expect-type

La biblioteca expect-type proporciona aserciones de tipos compatibles con Jest.
import { expectTypeOf } from 'expect-type';
expectTypeOf<User>().toHaveProperty('name').toBeString();

Pruebas de tipos condicionales

Verifique que los tipos condicionales produzcan el resultado correcto para distintas entradas.
type IsArray<T> = T extends any[] ? true : false;
expectTypeOf<IsArray<string[]>>().toEqualTypeOf<true>();
expectTypeOf<IsArray<string>>().toEqualTypeOf<false>();

Pruebas de tipos mapeados

Asegúrese de que las utilidades de tipos mapeados produzcan las estructuras correctas.
type Mutable = { -readonly [K in keyof ReadonlyUser]: ReadonlyUser[K] };
expectTypeOf<Mutable['name']>().toBeString();
expectTypeOf<Mutable>().not.toMatchTypeOf<Readonly<Mutable>>();

Ejecución de tsd en CI

Añada tsd a su canalización de CI para detectar regresiones de tipos.
// package.json
{ "scripts": { "test:types": "tsd" } }

Pruebas de tipos frente a pruebas en tiempo de ejecución

Las pruebas de tipos se ejecutan en tiempo de compilación, sin coste en tiempo de ejecución. Las pruebas en tiempo de ejecución validan el comportamiento. Ambas son necesarias.

Comprobación rápida

¿Qué verifica `expectTypeOf(add(1, 2)).toEqualTypeOf()`?

Resumen

Pruebas de tipos con expectTypeOf y tsd: ha dominado los conceptos y patrones clave.

Preguntas frecuentes

¿La lección «Pruebas de tipos con expectTypeOf y tsd» es gratis?

Sí — el texto completo de «Pruebas de tipos con expectTypeOf y tsd» 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 «Pruebas de tipos con expectTypeOf y tsd»?

Compruebe la corrección de los tipos junto con el comportamiento en tiempo de ejecución. 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 «Pruebas de tipos con expectTypeOf y tsd»?

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. Configuración de Jest para TypeScript con ts-jest
  2. Escritura de pruebas unitarias seguras respecto a los tipos
  3. Simulación de módulos y funciones en TypeScript
  4. Pruebas de tipos con expectTypeOf y tsd
← Volver a TypeScript Academy