Итак, я начал работать с TypeScript недавно, и мне это до сих пор нравится, но есть проблема, которую я просто не понимаю, почему она не работает должным образом.TypeScript var scoping
ключевое слово "var" по-прежнему доступно в TypeScript естественным образом, и я знаю, что это область функции, или область блока для ключевого слова "let". У меня есть следующий код, и я не могу понять, почему он не работает:
class Calendar {
month: number;
months: string[];
weekday: number;
day: number;
constructor() {
this.month = date.getMonth();
this.months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'November', 'December'];
this.weekday = date.getDay();
this.day = date.getDate();
}
nextMonth() {
var months = this.months;
var currentmonth: number = this.month;
el('.icono-caretRight').addEventListener('click',() => {
currentmonth = (currentmonth + 1) % months.length;
}, false);
month = currentmonth;
return month;
}
previousMonth() {
el('.icono-caretLeft').addEventListener('click',() => {
month--;
}, false);
}
}
let calendar = new Calendar();
let month = calendar.month;
let nextmonth = calendar.nextMonth();
console.log(nextmonth);
Посмотрите на функцию nextMonth(). Я не знаю, почему переменная «месяц» не увеличивается. Что именно я делаю неправильно здесь?
Примечание: Я использую JSPM + TypeScript (плагин-машинопись).
Заранее благодарен!
Я понимаю, что 'this.month' является 0, так как хорошо' date.getMonth() 'на самом деле 0. Моя проблема в том, что это не хочет, чтобы увеличить, вероятно, Я не получаю 'addEventListener' часть функции или, может быть, вы сказали, что я смущен, потому что, предположим, нужно увеличивать клик по правилу? Он должен возвращать новое значение каждый раз, когда пользователь щелкает правой кнопкой? Или ... Не уверен, хотя – Mark
О, ладно, я понимаю сейчас. Спасибо, басарат! :) – Mark