如何在Javascript(JSDOC)中类似于Typescript键入keyof示例?
TS刚刚好:
const a1 = new Car('Audi A1', 4, Power.solar);
const a380 = new Plane('Airbus A380', 800, 4);
function showProperty<T>(thing: T, prop: keyof T) {
console.log(`${String(prop)}:`, thing[prop]);
}
showProperty(a1, 'power');
showProperty(a380, 'engines');
链接到完整TS代码
但我不知道如何使用jsdoc:
const a1 = new Car('Audi A1', 4, 'petrol');
const a380 = new Plane('Airbus A380', 800, 4);
/**
* @param {Thing} thing
* @param {keyof Thing} prop
*/
function showProperty(thing, prop) {
console.log(`${String(prop)}:`, thing[prop]);
}
showProperty(a1, 'capacity'); // I want to see the "power" property here...!
showProperty(a380, 'capacity'); // I want to see the "engines" property here...!
链接到完整的JS代码
1条答案
按热度按时间h43kikqp1#
通过TypeScript中的JSDoc注解,可以使用
@template
标记为函数声明类型参数。这类似于使用尖括号()定义类型参数的TypeScript语法。VSCode and other code editors should now be able to see all the properties
链接到修改后的JS代码