Bir fabrika yöntemi ile bir sınıf olduğunu varsayalım:Kapatma derleyici yazarak: işlevine bakın (fabrika yöntemi)
: Ben gibi başka bir sınıftaFoo
'ın fabrika yöntemini enjekte bağımlılık istiyoruz
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);
}
}
/**
* @param {{
* createFoo: !function(!Object): !Foo
* }} options
*/
Sorun: Closure Compiler, bunun resmi parametreyle eşleşmediğini söylüyor.
found : {
createFoo: function ({a: number, b: number): Foo,
}
required: {
createFoo: function (Object): Foo,
}
Açıkçası ben kayıtlarında tipi imzasını ve sert kodunu yeniden yazabilirsiniz, ama gerçekten bu kadar bütün kod tabanına seçenekleri nesne yeni bir param eklemek her zaman güncellemek için gerek yoktur Foo.create
başvurmak istiyorum.
Bunu CC için nasıl yapabilirim?
ya '@ record' kullanımı:
I doğrulamak için bu tanım kullanılan –