Podczas zabawy z Typescriptem zdałem sobie sprawę, że moje klasy w modułach (używane jako przestrzenie nazw) nie były dostępne dla innych klas, chyba że napiszę export
przed nimi słowo kluczowe, takie jak:
module some.namespace.here
{
export class SomeClass{..}
}
Więc teraz mogę użyć powyższego kodu w ten sposób:
var someVar = new some.namespace.here.SomeClass();
Zastanawiałem się jednak, dlaczego to słowo kluczowe jest używane, a nie tylko public
słowo kluczowe, które jest używane na poziomie metody do oznaczenia, że metoda lub właściwość powinny być dostępne z zewnątrz. Dlaczego więc nie użyć tego samego mechanizmu, aby uczynić klasy, interfejsy itp. Zewnętrznie widocznymi?
Dałoby to wynikowy kod, taki jak:
module some.namespace.here
{
public class SomeClass{..}
}