Tengo este tipo:
type myCustomType = "aaa" | "bbb" | "ccc";Necesito convertirlo en una matriz como esta:
["aaa", "bbb", "ccc"]¿Cómo puedo hacer esto en mecanografiado?
No puede hacerlo con un literal de cadena, pero puede hacerlo con una enumeración
enum MyEnum { "aaa", "bbb", "ccc", } Object.keys(MyEnum).forEach(key => { console.log(key); })Reproducción aquí: https://stackblitz.com/edit/typescript-uqvach
Los tipos no existen en el código emitido; no puede pasar de un tipo a una matriz .
Pero podrías ir al revés, en algunas situaciones. Si la matriz no es dinámica (o el verificador de tipos puede determinar completamente sus valores en el momento en que se inicializa), puede declarar la matriz as const (para que el tipo de la matriz sea ["aaa", "bbb", "ccc"] en lugar de string[] ), y luego cree un tipo a partir de él asignando sus valores desde arr[number] :
const arr = ["aaa", "bbb", "ccc"] as const; type myCustomType = typeof arr[number];Aquí hay un ejemplo en el patio de recreo .
Por ejemplo:
const themeMode = ['light', 'dark'] as const; type MainTheme = typeof themeMode[number]; const values = [...themeMode]; // iterate on themeMode as const assertion values.map((theme) => console.log(theme));