为什么TypeScript不首先生成类?

时间:2013-07-16 23:10:47

标签: typescript

为什么从此代码生成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();

我无法想象任何原因,为什么不首先生成类...

2 个答案:

答案 0 :(得分:2)

很容易看出这个简单的代码没有正确排序。

然而,几乎不可能采用任何代码并确定它是否正确订购。采用任何代码并始终生成正确的顺序比这更困难。很可能不存在正确的排序。

即使这是基于每个文件解决的,也没有什么能阻止你弄乱网页上script标签的顺序并导致排序问题。

鉴于此,编译器只有一个关于排序的简单规则:代码按您指定的顺序发出。

答案 1 :(得分:0)

Typescript不对您的代码进行任何语义排序。

与此代码块相同:

var b = x; 
x=123;
var x;