JSDoc 多键值对通用

JSDoc multiple key value pair generic

如何将多个键值对添加到类似于 document.createElement 工作方式的函数调用 (<K extends keyof HTMLElementTagNameMap>(tagName: K): HTMLElementTagNameMap[K])

这只是为了正确设置 JSDoc 并且 VSCode intellisense 接受它并正常工作。

地图声明:

export interface KeyMap {
  "A": "true" | "false";
  "B": "a" | "b" | "c";
  "C": "foo" | "bar";
}

函数声明:

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);

调用函数

test({ "A": "true", "C": "bar" });

因为它是基于键和值的,所以我不知道如何添加泛型以便稍后获取每个键的可能值。

我通过使用 { [K in keyof KeyMap]: KeyMap[K]; } 并使用 type 而不是 interface

修复了它
export type Options = {
  [K in keyof KeyMap]: KeyMap[K];
}