¿Cómo puedo agregar varios pares de valores clave a una llamada de función similar a la forma en que funciona document.createElement ( <K extends keyof HTMLElementTagNameMap>(tagName: K): HTMLElementTagNameMap[K] )
Esto es solo para que JSDoc esté configurado correctamente y VSCode intellisense lo detecte y funcione correctamente.
Declaración de mapa:
export interface KeyMap { "A": "true" | "false"; "B": "a" | "b" | "c"; "C": "foo" | "bar"; }Declaración de función:
export interface Options { [key: keyof KeyMap]: KeyMap[key]; // It's not working since I don't have a way to refer to the generic type of the key } export function test(options: Options);Llamando a la función
test({ "A": "true", "C": "bar" });Dado que se trata de una clave y un valor, no sé cómo agregar un genérico para luego poder obtener los valores posibles para cada clave.
Lo arreglé usando { [K in keyof KeyMap]: KeyMap[K]; } y usando un type en lugar de una interface
export type Options = { [K in keyof KeyMap]: KeyMap[K]; }