我有一个用于基于参数添加动态属性的类的构造函数:
class Foo {
constructor(attach) {
for (const key in attach) {
this[key] = attach[key];
}
}
}
class Bar {
getBar() { return "bar"; }
}
const foo = new Foo({
bar: new Bar()
})
console.log(foo.bar.getBar());
属性只是注入的属性的简写。
我想以某种方式记录Foo,以便呼叫站点可以实现不错的自动完成。
我尝试了以下代码的一些变体,但是VSCode在Foo实例中仍然找不到T的属性:
/**
* Foogler
* @template {{[key:string]: Bar}} T
* @type {Foo & T}
*/
class Foo {
/**
* Creates a new Foo
* @param {T} attach
*/
constructor(attach) {