名前空間を区切ることができます。namespace内で定義したものは、exportを記述しない限り、外部から参照することができません。また、必ずnamespace名を経由する必要があります。
namespace sampleA {
export var str = "string";
}
console.log(sampleA.str); // <namespace名>.XXXと記述する必要がある
namespace sampleB {
export class Hoge {
hello(word: string): string {
return "Hello, " + word;
}
}
class Fuga{}
export interface IMiyo {
hello(word: string): string;
}
}
namespace sampleC {
//importして別名をつける
import Piyo = sampleB.Hoge;
import Fuga = sampleB.Fuga; // exportしていないため、エラーになる
import Miyo = sampleB.IMiyo;
export var str = new Piyo().hello("Type")
}
console.log(sampleC.str);