Un type guard definido por el usuario es una función cuyo tipo de retorno es un predicado de tipo (x is T). Cuando devuelve true, el compilador reduce (narrows) el argumento a T en el código que la llama, lo que te permite encapsular comprobaciones de tiempo de ejecución personalizadas.
