Статьи

Импорт нескольких экспортированных классов с одинаковым именем — основы Angular

Простой трюк для импорта двух или более классов, если они используют одно и то же имя в Angular.

Требование:

Допустим, у меня есть два класса, которые используют одно и то же имя для обоих классов, как показано ниже в примере.

import {CommonClassName} from '../module1/CommonClassName';
import {CommonClassName} from '../module2/CommonClassName';

В этом случае вы можете использовать as псевдоним, как указано ниже. Вы можете изменить AliasName по своему усмотрению.

import {CommonClassName} from '../module1/CommonClassName';
import {CommonClassName as AliasName} from '../module2/CommonClassName';
...
//You can call particular class with AliasName, as given below.
this.modelClass = new AliasName();

Если у вас длинные имена классов для вашего проекта, вы можете сократить его, используя псевдоним as.

Бинго! ???

Ты сделал это! Вы можете дать любое имя в псевдониме и использовать любой класс, если они имеют одно и то же имя!

Хотите узнать больше об операторе импорта Angular / Javascript?

Import является статическим, поэтому статическое выражение import используется для импорта живых привязок только для чтения, которые exported другим модулем.

Импортированные модули находятся в strict mode независимо от того, объявляете вы их как таковые или нет. Оператор import не может использоваться во встроенных сценариях, если такой сценарий не имеет type="module". Импортированные привязки называются живыми привязками, потому что они обновляются модулем, экспортировавшим привязку.

Существует также функционально-подобный динамический import(), который не требует сценариев type="module". Обратная совместимость может быть обеспечена с помощью атрибута nomodule в теге <script>.

Есть несколько разновидностей синтаксиса импорта.

import defaultExport from "module-name";
import * as name from "module-name";
import { export1 } from "module-name";
import { export1 as alias1 } from "module-name";
import { export1 , export2 } from "module-name";
import { foo , bar } from "module-name/path/to/specific/un-exported/file";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export1 [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";
var promise = import("module-name");

Объяснение

  • defaultExport
    Имя, которое будет относиться к экспорту по умолчанию из модуля.
  • имя-модуля
    Модуль, из которого выполняется импорт. Часто это относительный или абсолютный путь к файлу .js, содержащему модуль. Некоторые составители пакетов могут разрешать или требовать использование расширения; проверьте свою среду. Разрешены только строки в одинарных и двойных кавычках.
  • name
    Имя объекта модуля, которое будет использоваться как своего рода пространство имен при обращении к импорту.
  • exportN
    Имя экспорта для импорта.
  • aliasN
    Имена, которые будут относиться к именованному импорту.
Читать:
Как обрабатывать несколько наблюдаемых, когда неважно, что некоторые из них не работают?

Упрощение синтаксиса — чтобы его было легко запомнить.

1. Импортировать один экспорт из модуля

import {myExport} from '/modules/my-module.ts';

2. Импортировать содержимое всего модуля

import * as myModule from '/modules/my-module.d.ts';

3. Импорт нескольких экспортов из модуля

import {foo, bar} from '/modules/my-module.ts';

4. Импортируйте экспорт с более удобным псевдонимом

import {reallyReallyLongModuleExportName as shortName}
  from '/modules/my-module.js';

5. Переименовать несколько экспортов во время импорта

import {
  reallyReallyLongModuleExportName as shortName,
  anotherLongModuleName as short
} from '/modules/my-module.js';

6. Импортируйте модуль только из-за его побочных эффектов

import '/modules/my-module.js';

Надеюсь, вы найдете ответ с хорошим объяснением и дополнительными знаниями об импорте. Прокомментируйте, работает ли это для вас или вы найдете эту статью полезной.

Ссылка:

[1] Сведения об импорте заявления — Разработчики Mozilla

Первоначально опубликовано в Импортировать несколько экспортированных классов в Angular Ракшитом Шахом (я)

Больше контента на plainenglish.io

Похожие записи

Минимальные требования для приложения безопасного обмена информацией

admin

Удивительные DevTools

admin

Функция активации для искусственной нейронной сети

admin

Студия машинного обучения Microsoft Azure встречает Titanic

admin

Интересный способ понять программирование

admin

Python не в порядке: как подключить другие языки к Python

admin