Я делаю это в контексте приложения Ionic 3 и конструктора страницы.
Если у меня есть такой код:
import { Events } from 'ionic-angular';
const REFRESH = 'refresh';
export class JobsPage {
constructor (private events:Events) {
events.subscribe(REFRESH, ()=> {
...
});
}
ionViewWillUnload():void {
this.events.unsubscribe(REFRESH);
}
}
Код VS предоставляет лампочкус исправлением (это не тот же код, что и выше ... Я сократил решение, но, тем не менее, показываю ту же проблему без this.events
и контекстного меню, к которому вы получаете доступ).

Если я выберу добавить подпись индекса для свойства 'events', он добавляет следующий фрагмент кода после export class JobsPage {
и до constructor
.
[x: string]: any;
и предупреждения исчезают.
Что именно это значит?
Я знаю, что могу сделатьаргумент конструктора для событий public и получить доступ к this.events
, (никакой модификатор доступности тоже не отрицает это - так же, как private. Я мог бы также объявить свойство класса private events2:Events
и в конструкторе сказать this.events2 = events
), но я виделвидео, например , это , где разрешены аргументы частного конструктора и доступ к this.events, согласно следующему снимку экрана.
Снимок экрана со связанного видео Youtube @ 4: 51

Этокаким-то образом до версии TypeScript?
Я использую:
- TypeScript 2.4.2
- VS Code (для Mac) Версия 1.31.0
Версия TypeScript, которую я использую, взята из VSCode IDE

VS Кодовая версия для Mac
