为什么从此代码生成TypeScript编译器
var test = new Foo();
class Foo {
constructor() {
}
}
这次失败
var test = new Foo();
var Foo = (function () {
function Foo() {
}
return Foo;
})();
而不是这个?
var Foo = (function () {
function Foo() {
}
return Foo;
})();
var test = new Foo();
我无法想象任何原因,为什么不首先生成类...
答案 0 :(得分:2)
很容易看出这个简单的代码没有正确排序。
然而,几乎不可能采用任何代码并确定它是否正确订购。采用任何代码并始终生成正确的顺序比这更困难。很可能不存在正确的排序。
即使这是基于每个文件解决的,也没有什么能阻止你弄乱网页上script
标签的顺序并导致排序问题。
鉴于此,编译器只有一个关于排序的简单规则:代码按您指定的顺序发出。
答案 1 :(得分:0)
Typescript不对您的代码进行任何语义排序。
与此代码块相同:
var b = x;
x=123;
var x;