当某些实验标志打开时,我将注入注册为:
'abcFactory': name.space.createSomeModel
并按如下方式注入工厂:
/**
* @param {!function(!Object): !some.DataType} abcFactory
* @constructor @struct
*/
some.component.do = function(abcFactory) {
};
some.component.do.inject = ['abcFactory'];
但是当实验标志关闭时,我可以注册:
'abcFactory': goog.nullFunction
没有编译器抱怨函数签名不匹配?
'goog.nullFunction'可以匹配任何函数签名吗?可能不是,我想。
答案 0 :(得分:1)
你可以让param为空(或者更好但是可选)并且只在标志打开时指定工厂函数:
可能还会添加一些检查以确保在使用它之前该函数不为空。