No padrão ECMAscrip{filtering}t 2015, Javascrip{filtering}t adiciona o conceito de módulos. Typescrip{filter}t também segue esse conceito.
1. Importação e exportação de módulos
Os módulos são executados em seu próprio escopo, não no escopo global; Isso significa que variáveis, funções, classes, etc. definidas em um módulo não são visíveis fora do módulo, a menos que você as exporte explicitamente usando uma das exportações. Por outro lado, se você quiser usar variáveis, funções, classes, interfaces, etc., exportadas de outros módulos, você deve importá-las, usando uma das importações.
Os módulos são autodeclarados. No Typescrip{filter}t, a relação entre os dois módulos é estabelecida usando importação e exportação no nível do arquivo. Aqui vai um exemplo básico:
animal.ts
app.ts
No exemplo acima, um Animal-semelhante é declarado no animal.ts e exportado via exportação. No app.ts, especifique o caminho relativo do arquivo e importe-o através da importação para usar a classe Animal.
Como o Javascrip{filter}t possui dois métodos diferentes de referência de módulo, ao compilar para Javascrip{filter}t, você pode especificar o método de referência do módulo compilado através do arquivo de configuração Typescrip{filtering}t tsconfig.json
A seguir estão os conteúdos do arquivo Javascrip{filter}t compilados de diferentes maneiras
commonjs
AMD
2. Renomeação de importação e exportação
O nome do objeto interno que é usado por padrão ao importar e exportar módulos. Typescrip{filter}t também suporta renomeação antes e depois da exportação. Modifique o exemplo acima
animal.ts
app.ts
Ao importar e exportar, os módulos são renomeados usando a palavra-chave as.
Uma coisa a notar aqui é que, quando o módulo exportado é renomeado, o nome do módulo antes da importação deve ser o mesmo do nome do módulo renomeado exportado, caso contrário o compilador vai gerar uma mensagem de erro. Por exemplo, se o módulo exportado for renomeado para ANI, o nome do módulo antes da palavra-chave as deve ser ANI ao importar esse módulo em outro app.ts de arquivo.
Alternativamente, se você não souber o nome do módulo importado, pode substituí-lo por um símbolo *
No exemplo acima, se você renomear todos os módulos substituídos pelo símbolo * para animal_module, você pode acessar todo o conteúdo exportado do módulo por meio de animal_module objeto.
3. Exportar e exportar múltiplos objetos
Normalmente, múltiplos tipos de objetos são definidos no módulo e depois exportados juntos. Também pode haver múltiplos módulos na importação
animal.ts
app.ts
Ao exportar, você pode remontar o objeto tipo que deseja exportar em um objeto JSON e depois exportá-lo. Uma vez importado, o conteúdo pode ser acessado por meio de objetos de módulo renomeados.
4. Exportação padrão
Só pode haver uma exportação padrão para um módulo
animal.ts
app.ts
No exemplo acima, a classe Animal é exportada usando a palavra-chave padrão. Diferente das importações normais, ao importar módulos de exportação padrão, você pode especificar diretamente o nome do módulo importado sem envolvê-lo em colchetes curvados com {}.
5. Módulo de carregamento dinâmico
Porque no Javascrip{filter}t, existem duas formas de carregar módulos: CommonJS e AMD. Ao usar Typescrip{filter}t, você precisa escrever código diferente dependendo do conteúdo de configuração da compilação final para gerar Javascrip{filter}t.
Arquivo de módulo animal.ts
Referência de via CommonJS:
app.ts
Citação da AMD:
app.ts
|