Un paquete de Node.js que estoy usando tiene un método que toma un argumento requerido para ser de un tipo que a través de IntelliSense puedo ver que está definido con una declaración mecanografiada en el formulario:
export declare type ArgType = 'A' | 'B' | 'C';Me gustaría llamar al método del paquete usando cada valor permitido para este argumento; en otras palabras, algo en la forma:
['A','B','C'].forEach((v) => packageObject.packageMethod(v));excepto que me gustaría evitar codificar una copia estática de la lista de opciones.
Si tiene la capacidad de modificar el paquete, puede derivar la unión de cadenas de una matriz de literales de cadena de solo lectura y también exportar la matriz para usarla en el código de tiempo de ejecución:
// exported as values (usable at runtime) export const stringArgs = ['A', 'B', 'C'] as const; // exported as union of strings (not usable at runtime) export type ArgType = typeof stringArgs[number]; // "A" | "B" | "C" export function fn (arg: ArgType): void { // ... }De lo contrario, deberá analizar los valores utilizando la API del compilador , como lo menciona @ASDFGerte .