Solución comentada
Publicado el 15 de septiembre de 2026La solución
type Defined<T> = T extends null | undefined ? never : TEl error más común
type Defined<T> = [T] extends [null | undefined] ? never : TEl envoltorio de tupla desactiva la distribución, y la distribución es justo lo que este puzle necesita. string | null se comprueba ahora como un todo: no es asignable a null | undefined, así que el condicional toma la rama falsa y devuelve la unión tal cual, con null dentro.
Línea por línea
T extends null | undefined ? never : TComo
Testá desnudo, esto se ejecuta una vez por miembro.stringsobrevive,nullse convierte ennever, y los resultados se vuelven a unir.neverConvertir un miembro en
neveres la forma de borrarlo:string | neverse simplifica astringsin que nadie tenga que filtrar nada.
Para recordar
La distribución es una característica, no un accidente. Recurre al envoltorio [T] solo cuando quieras preguntar por una unión como un todo — y nunca cuando quieras editar sus miembros.

