1

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

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

4

2 回答 2

2

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

但是,几乎不可能获取任何代码并确定它是否正确排序。获取任何代码并始终生成正确的顺序比这更困难。很可能不存在正确的排序。

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

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

于 2013-07-16T23:29:57.753 回答
0

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

它与此代码块相同:

var b = x; 
x=123;
var x;
于 2013-07-16T23:31:40.820 回答