Tengo una pregunta sobre los argumentos de las funciones Javascript/Typescript y el código limpio . Así que usaré un ejemplo simple para ilustrar mi media.
Creé un componente React con la propiedad de view como accesorios:
<Grid view="Horizontal" />
type PropsInterface = { view: string } const Grid = ( { view }:PropsInterface )=>{ ... } view puede tener varias opciones. Por ejemplo: "Horizontal", "Vertical", etc.
Pregunta: ¿Cuál es la mejor manera de definir las opciones de view para que no las olvide o que otros desarrolladores puedan entenderlas fácilmente? ¿Es bueno el método inferior? ¿Hay mejores formas?
type PropsInterface = { view: "Horizontal" | "Vertical" }Typescript tiene un tipo Enum -
enum ViewDirection { Horizontal = "Horizontal", Down = "Vertical", }En TypeScript moderno, es posible que no necesite una enumeración cuando un objeto con const podría ser suficiente:
Entonces puedes hacer:
const ViewDirection = { Horizontal = "Horizontal", Down = "Vertical", } as const;Tipo de cadena VS
Si los valores de las cadenas están sujetos a cambios, usar una enumeración de cadena significa cambiar solo 1 literal de cadena, mientras que usar un tipo de cadena significa cambiarlos en todos los lugares donde se usan.
En términos simples, puede cambiar Horizontal = "Horizontal" a Horizontal = "H" sin la necesidad de cambiarlo en todas partes cuando usa una enumeración de cadena.
Más en profundidad aquí:
Diferencia entre enumeraciones de cadena y tipos de literales de cadena en TS