一、目前typescript是可以通过三斜线指令和import进行引入的
三斜线指令是用来标明文件之间的依赖关系,不能当作import使用,当使用export导出命名空间时,在别的模块要使用它,必须使用import引入,下面代码可以使用ts-node App.ts直接运行
示例
//Test.ts
import {Test1} from "./test";
export namespace Test{
export class C implements Test1.A{
hello(): void {
console.log("C")
}
say(): void {
console.log("C")
}
}
}
//Test1.ts
export namespace Test1{
export interface A{
say(): void;
hello(): void;
}
export class B implements A{
hello(): void {
console.log("B")
}
say(): void {
console.log("B")
}
}
}
//App.ts
import {Test1} from "./test";
import {Test} from "./run";
new Test1.B().say()
new Test.C().say()
如果把import换成如下指令,则会报错
/// <reference path="test.ts" /> /// <reference path="run.ts" />
需要把namespace前的export去除,然后时候tsc --outFile命令,去编译成js才能运行
修改如下
//Test.ts
/// <reference path="Test.ts" />
namespace Test{
export class C implements Test1.A{
hello(): void {
console.log("C")
}
say(): void {
console.log("C")
}
}
}
//Test1.ts
namespace Test1{
export interface A{
say(): void;
hello(): void;
}
export class B implements A{
hello(): void {
console.log("B")
}
say(): void {
console.log("B")
}
}
}
//App.ts
/// <reference path="test.ts" />
/// <reference path="run.ts" />
new Test1.B().say()
new Test.C().say()
上述代码不可以用ts-node 直接运行,在命令行输入
tsc --outFile simple.js App.ts
如上命令会生成一个simple.js文件,js文件可以直接使用node simple.js运行
综上,如果是当成模块使用,用import,如果是使用tsc编译成一个js文件,可以使用三斜线指令指明依赖关系,打包到一个js文件中