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];
}
如何将多个键值对添加到类似于 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];
}