typescript - 为什么 TS 私有构造函数 arg 不会产生“this”上下文属性?在示例中有效!是否依赖于 TS 版本?& VS Code 修复了什么?
问题描述
我在 Ionic 3 App 和 Page 的构造函数的上下文中执行此操作。
如果我有这样的代码:
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 Code 提供了一个带有修复程序的灯泡(这与上面的代码不同......我删减了解决方案,但this.events
仍然显示了相同的问题,并且您可以访问上下文菜单)。
如果我选择为属性“事件”添加索引签名,它会export class JobsPage {
在constructor
.
[x: string]: any;
警告消失。
这到底是怎么回事?
我知道我可以将事件的构造函数参数设为公开并获得可访问性
this.events
,(没有可访问性修饰符也否认这一点 - 与私有相同。我也可以声明一个类属性private events2:Events
并在构造函数中说this.events2 = events
),但我看过这样的视频 根据以下屏幕截图,它允许私有构造函数参数和对 this.events 的可访问性。
来自链接的 Youtube 视频的屏幕截图 @4:51
这是否以某种方式归结为 TypeScript 版本?
我在用:
- 打字稿 2.4.2
- VS Code(适用于 Mac)版本 1.31.0
我使用的 TypeScript 版本取自我的 VSCode IDE
适用于 Mac 的 VS 代码版本
解决方案
推荐阅读
- c++ - 创建哈希表,其中每个值都是许多值的向量
- python - 每个变量的转置
- flask - Flask WTF 表单:如果用户在 SelectMultipleField 中选择特定选项,是否可以显示新字段?
- python - 如何获得收益率指数?
- linux - 尝试使用自定义 DTB 构建 core-image-minimal 时出现 Makefile 错误
- html - sass 有没有办法根据其父级的背景色更改按钮的背景色?
- java - Java - 如何使 .jar 文件使用外部 .txt 文件?
- javascript - React-Native 文本无缘无故被垂直切断
- apache-kafka - 加入两个 Kafka 流
- java - Java 8、Drools 5.x 和 Drools 7.x