Как импортировать файл JavaScript в angular2

у меня возникли проблемы с тем, как импортировать файл javascript в мой проект angular2. Это файл, который не является модулем, который отделен от npm, и единственные инструкции, которые я смог найти, - это использование npm, который здесь не является опцией.

Я использую угловой cli и в моем угловом-cli.файл json у меня есть:

{
"apps": [
  "styles": [..],
  "scripts": ["../pathtomyjs/file.js"] 
]}

Я запустил ng build и ng serve, и когда я открываю свое приложение и смотрю на веб-консоль и пытаюсь ссылаться на функцию, которая находится в моем js-файле, я я могу сделать это успешно.

пример в консоли я набираю:

var test = MyObject; 

и я получаю test = {};

однако, когда я пытаюсь сделать

let test = MyObject;

в моем компоненте .файл ТС я :

home.component.ts (10,11): Cannot find name 'MyObject'.)

не уверен, как это сделать в Angular2.

спасибо!

4 ответов


Do:

declare var MyObject: any;

let test = MyObject;

или:

let test = (<any> MyObject);

для jQuery:

declare var jQuery: any;

jQuery.ajax({ ... });

это сторонняя библиотека? вам нужно будет сообщить компилятору typescript, где находятся файлы определения типа. Обычно он выглядит под node_modules/@types папка. Например, если вы хотите использовать jQuery, вы должны установить необходимые файлы определения типа, запустив:

npm install @types/jquery

Я положил мои js файлы app/assets/scripts и загрузите их в index.html <script src="assets/scripts/foobar.js"></script> . Это для ionic2 / .

в модуле вы должны определить свои функции, как это в глобальной области файла модуля

declare var myFancyFunction;


Я сделал глубокое погружение в этот здесь:

это отличный вопрос, и я рад, что вы спрашиваете, потому что я хотел бы иметь то, что я собираюсь написать в первый раз, когда я столкнулся с этой маленькой проблемой. Это проблема typescript / javascript и webpack, прежде чем это угловая проблема. Я определенно планирую запись на мой блог как можно скорее.

Сценарий:

запустить

npm install mathjs
  1. теперь вы пытаетесь использовать математика.js из компонента:
  2. найти математике.JS dist JS file (node_modules/mathjs/dist/math.js) и ссылка, как это

    import {mathjs} from "../../node_modules/mathjs/dist/math";

  3. но вы получаете сообщение об ошибке, говорящее "set --allowJS". вы делаете это так:

    Set --allowJS in config (tsconfig.json) { "compilerOptions": { "allowJs": true, ...

  4. теперь вы получаете:

ошибка ../node_modules/mathjs/dist / математика.js (12209,13): недоступно код обнаруженный.

  1. глядя в математике.источник js, вы видите, что это старый школьный модуль, но нет функции корневой оболочки (одна функция, чтобы принести их все и в темноте связать их..) (подробнее об этом позже).

решение: установите файл typings для целевого lib (@types/mathjs)

подробнее...