Я использую компилятор google-closure и инструмент jsLint для своего кода JS. Поскольку компилятор закрытия рассматривает теги JSDoc, мне нужно привести переменную к нужному типу, иначе компилятор выдаст ошибки. Код ниже работает нормально (без предупреждений компилятора), но когда я запускаю jsLint, я получаю ошибку «Странное назначение». Есть ли другой способ приведения переменной.
/** @return {Town|Village|Park|Metropolis} */
var getCurrentItem = function() {...some code}
var item = getCurrentItem();
if (condition)
{
item = /** @type {Town} */ (item); // 'Weird assignment' error occurs
drawTown(item);
updateTown(item)
}
else
{
item = /** @type {Village} */ (item); // 'Weird assignment' error occurs
drawVillage(item);
updateVillage(item)
}
Я хочу, чтобы приведение происходило в одну строку, а не для каждой функции, которую мне нужно вызывать!