我在冻结之前使用了ScriptSharp。由于TypeScript是一种正在开发的OOP语言,我决定尝试它。我使用visual studio(如果重要的话)。我在ScriptSharp中制作简单的事情我遇到了麻烦。我没想到会那么困难。 我想做什么:
你能给我一些如何使它工作或样品的指南吗?感谢。
更新: 什么是我可以添加对另一个打字稿项目的引用?如果将引用项目的输出复制到该项目,那将是很好的。
答案 0 :(得分:2)
您可以将模块组织成类似命名空间的层次结构,而不是拥有程序集和模块:
内部模块示例:
module AssemblyA {
export module ModuleA {
export class Example {
}
}
export module ModuleB {
export class Example {
}
}
}
var x = new AssemblyA.ModuleA.Example();
var y = new AssemblyA.ModuleB.Example();
您还可以跨多个文件定义这些内部模块......
modulea.ts
module AssemblyA {
export module ModuleA {
export class Example {
}
}
}
moduleb.ts
///<reference path="./modulea.ts" />
module AssemblyA {
export module ModuleB {
export class Example {
}
}
}
app.ts
///<reference path="./modulea.ts" />
///<reference path="./moduleb.ts" />
var x = new AssemblyA.ModuleA.Example();
var y = new AssemblyA.ModuleB.Example();
如果你想编写非常大的应用程序,可以使用外部模块(文件代表模块)。
assemblya / modulea.ts
export class Example {
}
assemblya / moduleb.ts
export class Example {
}
app.ts
import ModuleA = require('./assemblya/modulea');
import ModuleA = require('./assemblya/modulea');
var x = new ModuleA.Example();
var y = new ModuleB.Example();
答案 1 :(得分:1)
我找到了解决问题的方法:
在项目AssemblyA中:
在项目AssemblyB中:
///<reference path="../AssemblyA/AssemblyA.d.ts" />
<script src="AssemblyA.js"></script>
在项目B中,您可以使用任何名称空间别名(例如:import AssemblyANS2 = AssemblyA.NS2;)或完全限定名称。 将类放在不同的文件中,使用相同的模块名称,不需要引用ts文件。
我不喜欢的是引用项目没有任何意义,但我希望在添加引用后自动完成步骤1-2-3-4。 当指定“将javascript输出合并为一个文件”时,“将javascript输出重定向到目录”设置也不起作用。我可以在第二个选项中指定文件路径也很奇怪。我希望这些设置与Path.Combine结合使用。 也许我的解决方案并不理想,但这正是我所需要的。随意提出更好的主意。