1. El operador satisfies para validacion sin perder inferencia
El operador satisfies valida que un objeto cumpla con un tipo determinado sin forzar la ampliacion del tipo inferido, manteniendo la precision exacta de cada propiedad.
js
type ThemeColors = 'primary' | 'secondary' | 'accent';
const palette = {
primary: '#7c3aed',
secondary: '#a855f7',
accent: [124, 58, 237],
} satisfies Record<ThemeColors, string | number[]>;
// TypeScript sabe exactamente que palette.primary es un string
const primaryHex = palette.primary.toUpperCase();
2. Template Literal Types para rutas y eventos seguros
Los tipos literales de plantilla permiten construir sistemas de rutas tipadas o manejadores de eventos dinamicos con auto-completado completo.
js
type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
type ApiRoute = '/users' | '/posts' | '/comments';
type ApiEndpoint = `${HttpMethod} ${ApiRoute}`;
function callApi(endpoint: ApiEndpoint) {
console.log(`Llamando a ${endpoint}`);
}
// Valido con auto-completado en tu IDE
callApi('GET /posts');
3. Type Predicates para narrowing seguro
js
interface Article {
title: string;
slug: string;
}
function isArticle(item: any): item is Article {
return item && typeof item.title === 'string' && typeof item.slug === 'string';
}

