【发布时间】:2016-05-23 10:46:14
【问题描述】:
假设我有一个带有工厂方法的类:
export class Foo {
constructor(options) {
this.a = options.a;
this.b = options.b;
}
/**
* @param {{
* a: number,
* b: number
* }} options
* @return {!Foo}
*/
static create(options) {
return new Foo(options);
}
}
我想在另一个类中依赖注入Foo的工厂方法,比如:
/**
* @param {{
* createFoo: !function(!Object): !Foo
* }} options
*/
问题:闭包编译器说这与形参不匹配。
found : {
createFoo: function ({a: number, b: number): Foo,
}
required: {
createFoo: function (Object): Foo,
}
显然我可以重写记录中的类型签名和硬代码,但我真的很想参考Foo.create,所以每次我向选项对象添加新参数时都不需要更新整个代码库。
我怎样才能为 CC 做到这一点?
【问题讨论】:
标签: javascript google-closure-compiler