Как импортировать .ts в другой файл .ts в приложении Angular 5?

#javascript #angular #typescript

#javascript #angular #typescript

Вопрос:

У меня есть несколько методов utils внутри файла utils.ts, которые необходимо повторно использовать несколькими компонентами. Я не уверен, возможно ли это, и если да, то куда поместить импорт и каков синтаксис, если таковой имеется. Я пробовал index.html файл:

 <script src="assets/ts/utils.js?v=1.2"></script>   
  

И получение ошибки:

 http://localhost:4200/assets/ts/utils.js?v=1.2 net::ERR_ABORTED 404 (Not Found)
  

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

Комментарии:

1. Вы не должны импортировать свой js, вы должны импортировать свои ts в компонент, и webpack сделает свое дело

2. I have some utils methods inside a utils.ts но вы импортируете JS-файл. В чем там дело на самом деле?

Ответ №1:

Во-первых, вы пытаетесь импортировать файл .js, а не ts. Ошибка 404 заключается в том, что вы не находите файл, который вы указываете по указанному пути.

Я рекомендую вам проверить путь и имя файла, чтобы они были точно такими же. Можете ли вы также попробовать удалить ? V = 1.2 .
Если вы действительно хотите добавить .ts файл в свой проект, импорт должен выполняться через app.component.ts , а не с помощью импорта в Index.html

Комментарии:

1. Я добавил импорт в app.component.ts import ‘../assets/ts/ utils.ts’; Я не получаю никакой ошибки от импорта. Но я получаю сообщение об ошибке, что метод внутри файла ts является RROR ReferenceError: digitGrouping не определен

2. Можете ли вы показать мне, как вы импортируете библиотеку в компонент, как создаются экземпляры и как вы это вызываете? Ошибка может заключаться в том, что экземпляр, который вы создаете в компоненте, неверен, и поэтому объект, который вы создаете для вызова вашей библиотеки, не определен

3. Я смог решить эту проблему путем импорта в каждый нужный мне компонент утилиты ts, это import: import { Utils} from ‘../ .. / ../assets /ts / utils’; Я предпочитаю делать это в одном месте, но хорошего варианта нет, я согласен с таким подходом.