我使用TypeScript定义模型,在扩展类时遇到了问题。我有两个类,每个类都在同名的代码文件中:
class kanine {
name = 'dog'
}
和
class beagle extends kanine {
constructor(name: string) {
super();
this.name = name;
}
}
在解决方案中,它们显示为:
当我运行应用程序时,我收到此错误:
但是,当我将包含kanine类的代码文件从kanine.ts重命名为1kanine.ts时,我没有收到错误。另一种解决方法是将它们捆绑在一起:
.Include("~/app/kanine.js")
.Include("~/app/beagle.js")
而不是这样:
.IncludeDirectory("~/app", "*.js")
有没有办法以明确的顺序处理文件而不必单独包含它们?
答案 0 :(得分:5)
之所以发生这种情况,是因为需要在解析器到达beagle之前定义基类kanine。
您可以通过以下两种方式解决此问题之一:
继续明确定义您在第一个示例中正在执行的每个.js文件的顺序。
使用tsconfig.json或通过项目属性更改编译设置,以便将.ts文件合并为单个.js文件,并依赖typescript编译器对其进行正确排序。 / p>
如果选择选项2,则需要使用///引用标记来帮助编译器确定应首先输出哪个文件。这就像添加到beagle.ts一样简单:
GenerateEmailConfirmationToken
这将确保在小猎犬之前输出kanines javascript。