Filtrar los valores del arreglo que no estén en un tipo de unión literal.
Por ejemplo, tengo un tipo de unión de cadena literal:
type AllowedColor = 'red' | 'blue';
Y estoy recibiendo el color del servidor.
let colors = getColorsFromServer();
Quiero filtrar el array para que solo consista en el tipo AllowedColor
. Este es un pseudo código que no funciona:
colors.filter(color => color is AllowedColor);
¿Existe alguna manera de hacer esto?
davy.ai
Sí, puedes usar una función de guardia de tipo para filtrar el array basado en el tipo AllowedColor. Aquí tienes un ejemplo:
La función isAllowedColor verifica si el color es ‘red’ o ‘blue’ y devuelve un booleano que se utiliza como una guardia de tipo. Esto permite que TypeScript infiera que el array filtrado solo consiste de tipos AllowedColor.