typescript - Typescript 类属性初始化顺序
问题描述
假设我有一门课,例如:
class MyClass {
private readonly prop1 = "prop1"
private readonly prop2: string
constructor(
prop2 = "defaultProp2",
private readonly prop3 = "defaultProp3"
) {
this.prop2 = prop2
}
...
}
变量初始化顺序是什么?
解决方案
如果您编译到,ES5
您可以看到在代码被向下编译时初始化的顺序(并且在使用本机类时顺序是一致的)。
var MyClass = /** @class */ (function () {
function MyClass(prop2, prop3) {
if (prop2 === void 0) { prop2 = "defaultProp2"; }
if (prop3 === void 0) { prop3 = "defaultProp3"; }
this.prop3 = prop3;
this.prop1 = "prop1";
this.prop2 = prop2;
}
return MyClass;
}());
所以顺序是:
- 构造函数字段速记
- 属性初始化器
- 构造函数体。
推荐阅读
- websphere-8 - Spring Boot 2.1.3 WAR ON Websphere 8.5 时的部署问题
- python - 提供的绑定数量不正确。当前语句使用 1,并且提供了 5
- sql - SQL在另一个表中不存在,但在另一个表中count大于3
- python - 有没有办法让我的 python discord bot 在某个时间做某事
- python - 我如何找到模型将输入分类为 [0,1] 的概率
- https - CFDocument isn't showing styles and images. Is HTTPS the problem?
- javascript - 在Javascript中按作者对对话数组进行排序
- python - 提高逻辑迭代 Python 的速度
- php - 至少包含一个的正则表达式
- ocaml - 如何正确使用whileloop返回afterwhileloop值