"goog.proto2.Message.set$Metadata" 未定义的错误

"goog.proto2.Message.set$Metadata" undefined error

我正在为 libphonenumber 使用 Google 闭包 online compiler。这是编译器代码:

// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level SIMPLE_OPTIMIZATIONS
// @use_closure_library true
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonenumber.pb.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/metadatalite.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/asyoutypeformatter.js
// ==/ClosureCompiler==

编译成功,但是当我在 html 中包含编译后的 js 文件时,它给出错误:undefined is not a function,第 196 行
我怀疑它与 goog.require('goog.proto2.Message'); 有关,但到目前为止还没有成功。

最终目标是进行 phone 数字验证,如下所示:

var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();
var number = phoneUtil.parseAndKeepRawInput('1234567899', 'XX');
var isNumberValid = phoneUtil.isValidNumber(number);

如何解决TypeError: goog.proto2.Message.set$Metadata is not a function?

此提交中删除了 set$Metadata 方法:https://github.com/google/closure-library/commit/d49d52de4577aea38dd0d3ec76a931c2f551dbf3

由于 Google 将代码移至 Github then use the following code in Google online closure compiler 以获取最新的:

// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name libphonenumber.js
// @use_closure_library true
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonenumber.pb.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/metadata.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/asyoutypeformatter.js
// ==/ClosureCompiler==