Під час розмови з Typescript я зрозумів, що мої класи в модулях (використовувані як простори імен) були недоступні для інших класів, якщо я не написав export
перед ними ключове слово, наприклад:
module some.namespace.here
{
export class SomeClass{..}
}
Тому тепер я можу використовувати наведений вище код таким чином:
var someVar = new some.namespace.here.SomeClass();
Однак мені було просто цікаво, чому це ключове слово використовується на відміну від простого використання public
ключового слова, яке використовується на рівні методу, щоб означати, що метод або властивість повинні бути доступними зовні. То чому б не просто використовувати цей самий механізм, щоб зробити класи та інтерфейси тощо зовнішніми?
Це дасть отриманий код на зразок:
module some.namespace.here
{
public class SomeClass{..}
}