Я попытался скомпилировать goog.net.XhrIo в качестве теста:
goog.require('goog.Uri.QueryData');
goog.require('goog.debug.ErrorHandler');
goog.require('goog.net.XhrIo');
goog.net.XhrIo;
, когда я скомпилировал это, у меня был такой результат:
20-nov-2010 1:12:21 com.google.javascript.jscomp.LoggerErrorManager printSummary
WARNING: 0 error(s), 1 warning(s), 91,5% typed
JSC_USELESS_CODE. Suspicious code. This code lacks side-effects. Is there a bug? at test.js line 5 : 0
Кажется, что библиотека закрытиясам по себе не напечатан на 100%, и я не думаю, что цель состоит в том, чтобы достичь 100%.Javascript не является статически типизированным языком.Закрытие пытается принести некоторые преимущества статически типизированных языков в JavaScript.И это хорошо.Но это не значит, что вы должны нести бремя языков такого типа.
РЕДАКТИРОВАТЬ:
Я попытался скомпилировать пустой файл, и результат составил 90,4%.Я думаю, это означает, что base.js со всеми примитивными функциями не напечатан на 100%.Поэтому я провел еще несколько экспериментов и обнаружил, что, когда я также помещаю информацию о типе во все мои локальные переменные, процент увеличивается.Я не думаю, что необходимо помещать информацию о типе во все ваши локальные переменные.Я имею в виду, представьте себе следующее:
/** @type {number} */
var i = 0;
for(i = 0; i < 10; i++) {
// do something
}
Это не может быть целью компиляции с помощью компилятора закрытия.Это подтверждается тем фактом, что компиляция base.js не приводит к 100%.Я стараюсь держать это число от 85% до 95% в своем развитии.В зависимости от вашего времени, стиля программирования и приложения, над которым вы работаете, это может отличаться от курса.Лучшее правило - стараться поддерживать постоянный процент в течение всего периода разработки вашего приложения, будь то 60% или 90%.Просто наберите столько текста, сколько вам нужно, чтобы вам было комфортно с вашим собственным кодом.