автоимпорт в моем коде против предложения неоднозначных операторов импорта для операторов rxjs и интерфейса CanActivate - PullRequest
0 голосов
/ 16 февраля 2019

Я использовал операторы rxjs map и switchMap в своем угловом сервисе, и в сравнении с кодом мне предлагалось выбрать из 2 операторов импорта.Я не заметил много, но выбрал 1-й вариант и продолжил.Нет ошибок времени компиляции.но получил ошибку времени выполнения, которая не помогла мне понять проблему.потратив несколько часов, я подумал, что причиной может быть заявление об импорте, и изменил его на последнее, и оно сработало.в чем разница между двумя импортами?что такое внутренние операторы rxjs?мы используем их где-нибудь?

import { switchMap } from 'rxjs/internal/operators/switchMap';
import { switchMap } from 'rxjs/operators';

То же самое произошло с интерфейсом CanActivate.ниже приведены 2 заявления на импорт.только последний работает.1-й из них дает ошибку времени компиляции, которая снова не помогает

import { CanActivate } from '@angular/router/src/utils/preactivation'; 
import { CanActivate } from '@angular/router';

1 Ответ

0 голосов
/ 16 февраля 2019

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

Попробуйте просто автоматически импортировать из общедоступных API.Все, что помечено как внутреннее, как правило, следует избегать, если вы не знаете, что происходит.Со времени последнего серьезного обновления для rxjs (v6) они действительно спорят со всеми странными импортами из многих источников.99% времени вы хотите импортировать из операторов 'rxjs' или 'rxjs / operator'.

Я не знаю каких-либо настроек, которые вы можете настроить в vscode, это более или менее просто то, за чем вам нужно следить.Если вы импортируете что-нибудь, и это выглядит более чем на два уровня, я бы очень осторожно использовал это.Обычно это импорт верхнего уровня, например 'rxjs', или двухуровневый импорт, например '@ angular / router';

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