扩展类时的Typescript文件顺序问题

时间:2016-03-24 19:11:28

标签: javascript typescript visual-studio-2015

我使用TypeScript定义模型,在扩展类时遇到了问题。我有两个类,每个类都在同名的代码文件中:

class kanine {
     name = 'dog'
}

class beagle extends kanine {
    constructor(name: string) {
        super();
        this.name = name;
    }
}

在解决方案中,它们显示为:

enter image description here

当我运行应用程序时,我收到此错误:

enter image description here

但是,当我将包含kanine类的代码文件从kanine.ts重命名为1kanine.ts时,我没有收到错误。另一种解决方法是将它们捆绑在一起:

.Include("~/app/kanine.js")
.Include("~/app/beagle.js")

而不是这样:

.IncludeDirectory("~/app", "*.js")

有没有办法以明确的顺序处理文件而不必单独包含它们?

1 个答案:

答案 0 :(得分:5)

之所以发生这种情况,是因为需要在解析器到达beagle之前定义基类kanine。

您可以通过以下两种方式解决此问题之一:

  1. 继续明确定义您在第一个示例中正在执行的每个.js文件的顺序。

  2. 使用tsconfig.json或通过项目属性更改编译设置,以便将.ts文件合并为单个.js文件,并依赖typescript编译器对其进行正确排序。 / p>

  3. 如果选择选项2,则需要使用///引用标记来帮助编译器确定应首先输出哪个文件。这就像添加到beagle.ts一样简单:

    GenerateEmailConfirmationToken

    这将确保在小猎犬之前输出kanines javascript。