Пространство имён TypeScript
Наиболее явная цель пространства имён — решить проблему дублирования имён.
Предположим, есть ситуация, когда в классе два ученика по имени Сяо Мин. Чтобы чётко их различать, нам приходится использовать дополнительную информацию помимо их имён, например фамилии (Ван Сяомин, Ли Сяомин), или имена их родителей и т. д.
Пространство имён определяет видимую область действия идентификатора. Идентификатор может быть определён в нескольких пространствах имён, и его значения в разных пространствах имён не связаны друг с другом. Таким образом, любой идентификатор может быть определён в новом пространстве имён, и он не будет конфликтовать с существующими идентификаторами, потому что существующие определения находятся в других пространствах имён.
В TypeScript пространства имён определяются с помощьюnamespaceследующего синтаксиса:
Выше определяется пространство имён SomeNameSpaceName. Если нам нужно вызывать классы и интерфейсы в SomeNameSpaceName извне, нужно добавить ключевое словоexport.
Чтобы вызвать его в другом пространстве имён, синтаксис следующий:
SomeNameSpaceName.SomeClassName;
Если пространство имён находится в отдельном файле TypeScript, на него следует ссылаться с помощью тройной косой черты ///, и синтаксис следующий:
/// <reference path = "SomeFileName.ts" />
Следующие примеры демонстрируют использование пространств имён, определённых в разных файлах:
Код файла IShape.ts:
Код файла Circle.ts:
Код файла Triangle.ts:
Код файла TestShape.ts:
Используйте команду tsc, чтобы скомпилировать приведённый выше код:
tsc --out app.js TestShape.ts
Получите следующий код JavaScript:
JavaScript
Используйте команду node для просмотра результата вывода:
$ node app.js Circle is drawn Triangle is drawn
Вложенные пространства имён
Пространства имён поддерживают вложенность, то есть можно определить пространство имён внутри другого пространства имён.
Доступ к членам осуществляется с помощью точки.чтобы реализовать это, как в следующем примере:
Код файла Invoice.ts:
Код файла InvoiceTest.ts:
Используйте команду tsc, чтобы скомпилировать приведённый выше код:
tsc --out app.js InvoiceTest.ts
Получите следующий код JavaScript:
JavaScript
Используйте команду node для просмотра результата вывода:
$ node app.js 200Другие расширения