¿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)) {