Class 类定义顺序
有人能解释一下为什么编译下面的typescript代码吗?在我看来,它永远不会成功运行Class 类定义顺序,class,typescript,Class,Typescript,有人能解释一下为什么编译下面的typescript代码吗?在我看来,它永远不会成功运行 class Xyz { static x : Abc = new Abc(); } class Abc { } 没有编译时错误,因为它相当于这个语法有效的JavaScript var Xyz = (function () { function Xyz() { } Xyz.x = new Abc(); return Xyz; })()
class Xyz
{
static x : Abc = new Abc();
}
class Abc
{
}
没有编译时错误,因为它相当于这个语法有效的JavaScript
var Xyz = (function () {
function Xyz() {
}
Xyz.x = new Abc();
return Xyz;
})();
var Abc = (function () {
function Abc() {
}
return Abc;
})();
但它会有运行时错误,因为您试图在定义
Abc
之前实例化Abc
的成员。TypeScript不会强制执行代码中构造的排序。考虑一些小的变体,这是有效的。在排序方面,什么东西应该被允许或不允许。
class Xyz
{
static x = () => new Abc();
}
class Abc
{
}
对于简单的情况,可以添加此选项。为什么不?我看不出有什么问题。。。