Как отключить неявный импорт в машинописи - PullRequest
0 голосов
/ 11 сентября 2018

Прежде всего, «неявный импорт» не является официальным термином.

Вот что я назвал «неявным импортом».

У меня есть 2 файла ts:

file1: app.ts

import * as angular from 'angular'; // (*)
import component from './component';

file2: component.ts

const component : angular.IComponentOptions = {
    templateUrl: 'component.template.html'
};

export default component;

Здесь, в component.ts, даже если angular не импортирован, компилятор машинописи никогда не показываетлюбая ошибкаЕсли я удаляю строку (*) в файле app.ts, то компилятор машинописного текста жалуется на отсутствие углового пространства имен, поэтому я подумал, что модули, импортированные в app.ts, также неявно импортируются в component.ts, когда app.ts импортирует component.ts.Вот почему я называю это поведение «неявным импортом». (Пожалуйста, дайте мне знать официальный термин для этого поведения, если существует)

Как отключить это поведение?Я хочу сделать каждый файл ts как можно более полным.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вы столкнулись с этой проблемой TypeScript : глобальные символы UMD, такие как angular, могут использоваться в позициях типа даже из модуля. Райан Кавано утверждал, что TypeScript работает как задумано, но я согласен с репортером по этому вопросу, что поведение не имеет смысла.

0 голосов
/ 11 сентября 2018

Прежде всего, «неявный импорт» не является официальным термином.

Вы ищете термин global module.Какое бы определение типа angular вы не использовали, оно определило global angular, и поэтому вы можете использовать этот global , не импортируя его.

Если определение типа определяет глобальный ... и вы используете это определение типа (что, я полагаю, вам нужно) ... вы получаете глобальный.Нет двух способов обойти это извините.

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