В стандарта ECMAscrip{filtering}t 2015 Javascrip{filtering}t добавя концепцията за модули. Typescrip{filter}t също следва тази концепция.
1. Внос и износ на модули
Модулите се изпълняват в собствен обхват, а не в глобалния обхват; Това означава, че променливите, функциите, класовете и т.н., дефинирани в модула, не са видими извън модула, освен ако не ги експортирате изрично чрез някой от експортите. От друга страна, ако искаш да използваш променливи, функции, класове, интерфейси и т.н., експортирани от други модули, трябва да ги импортираш, използвайки един от импортите.
Модулите са самодеклариращи се. В Typescrip{filter}t връзката между двата модула се установява чрез импорт и експорт на ниво файл. Ето един основен пример:
animal.ts
app.ts
В горния пример, Animal-like се декларира в animal.ts и се експортира чрез износ. В app.ts задайте относителния път на файла и го импортирайте чрез импорт, за да използвате класа Animal.
Тъй като Javascrip{filter}t има два различни метода за референтни модули, при компилиране в Javascrip{filter}t можете да зададете референтния метод на компилирания модул чрез конфигурационния файл Typescrip{filtering}t tsconfig.json
Следва съдържанието на файла Javascrip{filter}t, компилирано по различни начини
commonjs
AMD
2. Преименуване на вноса и износа
Името на вътрешния обект, който се използва по подразбиране при импортиране и експортиране на модули. Typescrip{filter}t също поддържа преименуване преди и след експортиране. Променете примера по-горе
animal.ts
app.ts
При импортиране и експортиране модулите се преименуват с ключовата дума as.
Едно нещо, което трябва да се отбележи, е, че когато експортираният модул се преименува, името на модула преди импорта трябва да е същото като името на експортирания преименуван модул, в противен случай компилаторът ще подаде съобщение за грешка. Например, ако експортираният модул бъде преименуван на ANI, името на модула преди ключовата дума as трябва да бъде ANI при импортиране на този модул в друг файлов app.ts.
Алтернативно, ако не знаете името на импортирания модул, можете да го замените със знак *
В горния пример, ако преименувате всички модули, заменени със знака *, на animal_module, можете да получите достъп до цялото съдържание, експортирано от модула чрез animal_module обект.
3. Експортиране и експортиране на множество обекти
Обикновено в модула се дефинират множество типове обекти и след това се експортират заедно. Може да има и няколко модула в импорта
animal.ts
app.ts
При експортиране можете да сглобите отново типовия обект, който искате да експортирате, в JSON обект, и след това да го експортирате. След импортиране съдържанието може да се достъпи чрез преименувани модулни обекти.
4. Стандартен експорт
Може да има само един стандартен експорт за модул
animal.ts
app.ts
В горния пример класът Animal се експортира с основната ключова дума. За разлика от нормалните импорти, при импортиране на стандартни експортни модули можете директно да посочите името на импортирания модул, без да го обгръщате в къдрави скоби с {}.
5. Модул за динамично зареждане
Защото в Javascrip{filter}t има два начина за зареждане на модули: CommonJS и AMD. Когато използвате Typescrip{filter}t, трябва да напишете различен код в зависимост от конфигурационното съдържание на крайната компилация, за да генерирате Javascrip{filter}t.
Модулен файл animal.ts
CommonJS начин на референция:
app.ts
Цитат от AMD way:
app.ts
|