Reducción de tipos con instanceof e in
Reduzca los tipos de instancias de clases y estructuras de objetos.
Reducción de tipos con instanceof e in es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 2 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.
Bienvenido
Estrechamiento con instanceof
function handle(err: Error | string) {
if (err instanceof Error) {
console.log(err.message); // err: Error
} else {
console.log(err); // err: string
}
}instanceof con clases personalizadas
class Dog { bark() { return 'Woof'; } }
class Cat { meow() { return 'Meow'; } }
function speak(pet: Dog | Cat) {
if (pet instanceof Dog) pet.bark();
else pet.meow();
}instanceof no funciona con interfaces
El operador in
type Fish = { swim(): void };
type Bird = { fly(): void };
function move(animal: Fish | Bird) {
if ('swim' in animal) animal.swim();
else animal.fly();
}Estrechamiento con in y propiedades opcionales
type A = { x?: number };
type B = { y: number };
function process(v: A | B) {
if ('x' in v) {
// v: A (has optional x)
}
}Combinación de instanceof e in
function describe(v: Error | { message: string }) {
if (v instanceof Error) console.log('Error:', v.stack);
else if ('message' in v) console.log('Object:', v.message);
}in para uniones discriminadas
type Square = { side: number };
type Circle = { radius: number };
function area(s: Square | Circle): number {
return 'side' in s ? s.side ** 2 : Math.PI * s.radius ** 2;
}instanceof en bloques catch
try {
await fetchData();
} catch (err) {
if (err instanceof NetworkError) { /* retry */ }
else if (err instanceof AuthError) { /* redirect */ }
else throw err;
}Comprobación con Object.prototype frente a in
Prioridad del estrechamiento
Comprobación rápida
Resumen
Preguntas frecuentes
¿La lección «Reducción de tipos con instanceof e in» es gratis?
Sí — el texto completo de «Reducción de tipos con instanceof e in» 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 «Reducción de tipos con instanceof e in»?
Reduzca los tipos de instancias de clases y estructuras de objetos. 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 2 de 4.
¿Cuánto tiempo toma la lección «Reducción de tipos con instanceof e in»?
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
- Reducción de tipos con typeof y truthiness
- Reducción de tipos con instanceof e in
- Funciones de protección de tipos definidas por el usuario
- Comprobación de exhaustividad con never