Typescriptに手を加えている間、(名前空間として使用されている)モジュール内のクラスはexport
、次のようにその前にキーワードを記述しない限り、他のクラスでは使用できないことに気付きました。
module some.namespace.here
{
export class SomeClass{..}
}
これで、上記のコードを次のように使用できます。
var someVar = new some.namespace.here.SomeClass();
ただしpublic
、メソッドまたはプロパティに外部からアクセスできることを示すためにメソッドレベルで使用されるキーワードを使用するのではなく、なぜこのキーワードが使用されるのか疑問に思いました。では、なぜこの同じメカニズムを使用して、クラスやインターフェースなどを外部から見えるようにしないのでしょうか。
これにより、次のようなコードが生成されます。
module some.namespace.here
{
public class SomeClass{..}
}