Ответ 1
делать:
declare var MyObject: any;
let test = MyObject;
Или:
let test = (<any> MyObject);
Для jQuery:
declare var jQuery: any;
jQuery.ajax({ ... });
Мне трудно понять, как импортировать javascript файл в проект angular2. Это файл, который не является модулем, отличным от npm, и единственными инструкциями, которые я смог найти, является использование npm, что здесь не вариант.
Я использую angular cli и в моем angular -cli.json файле у меня есть:
{
"apps": [
"styles": [..],
"scripts": ["../pathtomyjs/file.js"]
]}
Я запускал ng build и ng, и когда я открываю свое приложение и смотрю на веб-консоль и пытаюсь ссылаться на функцию, которая находится в моем js файле, я могу сделать это успешно.
Пример в консоли:
var test = MyObject;
и я получаю test = {};
Однако, когда я пытаюсь сделать
let test = MyObject;
в моем файле .ts файла. Я получаю:
home.component.ts (10,11): Cannot find name 'MyObject'.)
Не знаете, как это сделать в Angular2.
Спасибо!
делать:
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
/angular2
.
В модуле вы должны определить свои функции, подобные этому, в глобальной области файла модуля
declare var myFancyFunction;
Я глубоко погрузился в этот здесь:
Это отличный вопрос, и я рад, что вы спрашиваете, потому что мне жаль, что у меня не было того, что я собираюсь написать, когда впервые столкнулся с этой маленькой проблемой. Это проблема typescript/javascript и webpack, прежде чем проблема с angular. Я определенно планирую записать на мой блог как можно скорее.
Вы запускаете
npm install mathjs
Найти файл math.js dist js (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/math.js(12209,13): недоступна обнаружен код.
Решение: установите файл типизации для целевой библиотеки lib (@types/mathjs)