Использование 'import * as' в сочетании с index.ts - PullRequest
0 голосов
/ 27 апреля 2018

Я читал статью о использовании файлов index.ts в модульной разработке Angular. Я нашел это довольно полезным. Это может значительно сократить количество операторов импорта. Но это требует, чтобы вы включили все упомянутые компоненты в одну строку.

Итак, когда у нас изначально есть

import {BusinessLogicComponent} from '../shared/ang-graph/shapes/business-logic.component';
import {BusinessLogicModel} from '../shared/ang-graph/shapes/business-logic.model';
import {PageReferenceComponent} from '../shared/ang-graph/shapes/page-reference.component';
import {PageReferenceModel} from '../shared/ang-graph/shapes/page-reference.model';
import {RestRequestComponent} from '../shared/ang-graph/shapes/rest-request.component';
import {RestRequestModel} from '../shared/ang-graph/shapes/rest-request.model';

мы могли бы уменьшить это до

import {BusinessLogicComponent, BusinessLogicModel, PageReferenceComponent, PageReferenceModel, RestRequestComponent, RestRequestModel} from '../shared/ang-graph/shapes';

Но это дает очень длинную строку кода, которая на самом деле не читается.

Поэтому мне было интересно, можно ли заменить приведенный выше сокращенный оператор импорта, например:

import * as GraphShapes from '../shared/ang-graph/shapes';

Это снова делает все более читабельным с дополнительным преимуществом более глубокого знания происхождения компонента в коде.

Итак

const pageRef = new PageReferenceModel('page1', def, 'some-prop');

станет

const pageRef = new GraphShapes.PageReferenceModel('page1', def, 'some-prop');

Я думаю, что это более ясно в коде, но я не уверен, есть ли плохие побочные эффекты в этом подходе, такие как импорт слишком большого количества компонентов или ...

Итак, это хорошая практика для использования

import * as [GroupName] from 'path/to/code/folder';

в сочетании с index.ts файлами?

1 Ответ

0 голосов
/ 27 апреля 2018

Использование index.ts для отображения «открытого интерфейса» вашего пакета кода - хорошая идея.

Хотя * -импорты не так хороши с точки зрения долгосрочного обслуживания кодовой базы: в случае больших пакетов index.ts может включать в себя десятки экспортируемых элементов, а * -импорт затрудняет навигацию по коду.

В случае, если вы импортируете определенные имена - любой в команде может отследить, какие классы / функции импортированы в каждый файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...