Avatar ·

¿Qué hace la palabra clave `is` en TypeScript y cómo usarla correctamente?

¡Hola a todos! Empecé a estudiar TypeScript y me topé con la palabra clave `is`, que se usa en algunos ejemplos. Honestamente, no entiendo del todo para qué sirve y en qué se diferencia del tipo de retorno normal `boolean`. Aquí hay un ejemplo que encontré: ```typescript function isString(value: unknown): boolean { return typeof value === "string"; } ``` Pero también vi esta variante: ```typescript function isString(value: unknown): value is string { return typeof value === "string"; } ``` ¿Cuál es la diferencia? Entiendo que `value is string` en el tipo de retorno es una construcción especial, pero no logro captar cuándo usarla. Si solo devuelvo `boolean`, TypeScript también puede entender que el valor es una cadena después de la comprobación, ¿o no? Intenté escribir este código: ```typescript function isString(value: unknown): boolean { return typeof value === "string"; } function processValue(value: unknown) { if (isString(value)) {