Как импортировать файл 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
- теперь вы пытаетесь использовать математика.js из компонента:
-
найти математике.JS dist JS file (node_modules/mathjs/dist/math.js) и ссылка, как это
import {mathjs} from "../../node_modules/mathjs/dist/math";
-
но вы получаете сообщение об ошибке, говорящее
"set --allowJS".
вы делаете это так:Set --allowJS in config (tsconfig.json) { "compilerOptions": { "allowJs": true, ...
теперь вы получаете:
ошибка ../node_modules/mathjs/dist / математика.js (12209,13): недоступно код обнаруженный.
- глядя в математике.источник js, вы видите, что это старый школьный модуль, но нет функции корневой оболочки (одна функция, чтобы принести их все и в темноте связать их..) (подробнее об этом позже).
решение: установите файл typings для целевого lib (@types/mathjs)