Tengo una variable, digamos gender . Lo estoy declarando al principio y asignando un valor más adelante en el código. Quiero restringir el valor del gender para que sea male o female . Cualquier otra cosa que no sea esto no debe aceptarse (lanzar un error). ¿Hay alguna manera en mecanografiado para hacer esto?
let gender: string; // some logic here gender = someFunction(); //Restrict this to only accept 'male' and 'female' as valid values.let gender: 'male' | 'female';
Lo que puede hacer es definir una enumeración y dejar que el tipo de devolución de su función sea esa enumeración. Lo mismo ocurre con su variable de género. Puede ser de tipo Gender en lugar de string .
enum Gender {male, female}; let gender: Gender; function someFunction(): Gender { return Gender.male; } // some logic here gender = someFunction(); //Restrict this to only accept 'male' and 'female' as valid values.Como otros han mencionado en sus respuestas, también puede usar un tipo de unión . La función también necesita devolver el mismo tipo de unión.
let gender: "male" | "female"; function someFunction(): "male" | "female" { return "male"; } // some logic here gender = someFunction(); //Restrict this to only accept 'male' and 'female' as valid values.En la declaración de variable o constante, puede definir las cadenas que puede tener, por ejemplo
let gender: "male" | "female" | "other";Puede hacer lo mismo para las interfaces mecanografiadas