web-dev-qa-db-ja.com

JavaScriptファイルをangular2にインポートする方法

Javascriptファイルをangular2プロジェクトにインポートする方法を理解するのに問題があります。それはnpmの一部であるモジュールではないファイルであり、私が見つけることができた唯一の指示はnpmを使用することであり、これはここではオプションではありません。

私はangular cliを使用しています。angular-cli.jsonファイルには次のものがあります。

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

Buildとng serveを実行し、アプリを開いてWebコンソールを確認し、jsファイルにある関数を参照しようとすると、正常に実行できます。

入力するコンソールの例:

var test = MyObject; 

test = {};

しかし、私がやろうとすると

let test = MyObject;

私のコンポーネントの.tsファイルで私は得る:

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

Angular2でこれを行う方法がわからない。

ありがとう!

11
Kevin Sar

行う:

declare var MyObject: any;

let test = MyObject;

または:

let test = (<any> MyObject);

JQueryの場合:

declare var jQuery: any;

jQuery.ajax({ ... });
8
Dan

サードパーティのライブラリですか? TypeScriptコンパイラに型定義ファイルの場所を知らせる必要があります。通常、それはnode_modules/@typesフォルダ。たとえば、jQueryを使用する場合は、次を実行して必要なタイプ定義ファイルをインストールします。

npm install @types/jquery
2
pixelbits

これについて深く掘り下げました ここ

これは素晴らしい質問です。この小さな問題に最初に出会ったときに、これから書きたいものがあればいいのにと思います。これはTypeScript/javascriptとwebpackの問題であり、angularの問題です。私は間違いなく my blog の記事をできるだけ早く計画しています。

あなたのシナリオ:

あなたが実行します

_npm install mathjs
_
  1. 次に、コンポーネントからmath.jsを使用しようとします。
  2. Math.js dist jsファイル(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/math.jsのエラー(12209,13):到達不能コードが検出されました。

  1. Math.jsのソースを見ると、それは古い学校のモジュールであることがわかりますが、ルートラッパー関数はありません(それらをすべて暗闇でバインドするための1つの関数です)。

Solution:ターゲットlibのタイピングファイルをインストールします(@ types/mathjs)

続きを読む...

1

jsファイルをapp/assets/scriptsに入れ、index.html<script src="assets/scripts/foobar.js"></script>にロードします。これはionic2/angular2プロジェクト用です。

モジュールでは、モジュールファイルのグローバルスコープでこのような関数を定義する必要があります

declare var myFancyFunction;

0
El Dude