ホームページ  >  記事  >  ウェブフロントエンド  >  angularjs でサードパーティのライブラリを使用するにはどうすればよいですか? angularjs でのサードパーティ ライブラリの使用の詳細な説明

angularjs でサードパーティのライブラリを使用するにはどうすればよいですか? angularjs でのサードパーティ ライブラリの使用の詳細な説明

寻∝梦
寻∝梦オリジナル
2018-09-07 16:36:261823ブラウズ

この記事では、angularjsサードパーティ ライブラリの使用方法を紹介します。angularjs で使用できるサードパーティ ライブラリはどれですか? 質問を含めて記事に入りましょう。

Angular のコンポーネントとモジュールは、さまざまな既存のサードパーティ ライブラリ (lodashmoment など) の使用と少し互換性がないようです。これは大したことです。その理由は、TypeScript によって引き起こされるアーティファクトです。フロントエンドの 3 本柱は実は同じで、どのようなフロントエンド フレームワークであっても、これらのサードパーティ ライブラリを使用できます。 lodashmoment 等)使用上有点格格不入,这很大的原因是 TypeScript 造成的假象。三足鼎立的前端其实都是雷同的,不管是哪种前端框架都可以使用到这些第三方类库。

以下我将从另一个视角解释 Angular 如何使用第三方类库的一种经验做法。

一、写在前面

在开始之前,需要先了解一下 TypeScript 模块系统 ——模块是指在其自身作用域里执行,而不是在全局作用域里;模块间是依靠 exportimport 建立关系。编译器在编译过程中,也是依赖这种关系来定位需要编译的文件。

TypeScript 依然还是以 JavaScript 文件的形式发布类库,这会导致类型无法表述,需要配合声明文件对其进行类型描述;因此声明文件成了类库一个必不可少的组成部分。

二、分类

Angular 使用 TypeScript 语言开发,诚如上一小节讲来说,要想让一个类库被运用,要件是有没有声明文件

有声明文件

要分清类库是否有声明文件 *.d.ts,可以从两个方面来确认这件事:

1、类库自带

从 Npm 安装一个依赖包后,可以直接检查其库的 package.json 是否包含 typings 节点,例如 moment

"typings": "./moment.d.ts"

2、TypeSearch检索

TypeScript 提供了一个叫 TypeSearch 网站,可以直接输入关键词检查是否包含该类库的声明文件。

例如 lodash 可以在列表中点击会跳转至 npm 网站,并且会看到这样的一个命令:

npm install --save @types/lodash

无声明文件

这类情况还蛮常见,例如早一点时间 G2 就没有声明文件,这种情况下只能自行编写声明文件。

Angular Cli 创建的项目会包含一个 src/typings.d.ts 声明文件,它会自动包含在全局声明定义中,而把这些类库的声明信息写在这里面再好不过。

一般而言自己很难对一个类库写一个完整的声明文件,这对于成本来说太不合算,因此往往都是只对部分全局对象做一个 any (表示忽略该静态类型检查)亦可,例如:

// src/typings.d.ts
declare var G2: any;

三、如何使用?

声明文件是纽带,依然以这种方式来划分如何使用。

对于有声明文件,无需额外做什么,只需在需要模块的地方使用 import 来导入即可,例如:

import * as moment from 'moment';

moment(); // 当前时间

无声明文件

重要来看无声明文件时怎么做,前面说到使用 any 来表示忽略静态类型检查,意味者无法享受声明文件带来的智能提示快感。

G2 ,我们可以在项目的任意位置直接使用它,但也仅仅只能识别 G2 变量,而实例的方法或属性是不可知的。

// app.component.ts

const g2 = new G2();
g2. // 输入 `.` 后是不会有任何方法或属性

除此之外 TypeScript 编译过程中也不会对 G2 做任何类型检查,G2 是否真的存在只能由自己把握。对于 Angular 而言,是需要额外在 .angular-cli.jsonscripts 节点上明确加载这些模块。(想看更多就到PHP中文网AngularJS开发手册中学习)

// .angular-cli.json
"scripts": [
    "../node_modules/@antv/g2/dist/g2.min.js"
]

TypeScript 编译后依然还是 JavaScript 代码,假如不手动加载 G2 相关 JavaScript 文件,自然在运行过程中会提供未找到 G2 的错误。

总结

从 TypeScript 的视角来看如何使用第三方类库,会有不同的感觉,只是一个简单的非靠谱但有效的描述。希望懂得多的人手下留情。

这里无意黑 G2 的意思,现 G2
以下では、Angular がサードパーティ ライブラリをどのように使用するかを別の観点から説明します。

1. 前に記述します

始める前に、TypeScript モジュール システムを理解する必要があります。モジュールはグローバル スコープではなく、独自のスコープで実行されます。モジュールは export に依存します。 code> と <code>import は関係を確立します。コンパイル プロセス中に、コンパイラはこの関係に基づいて、コンパイルする必要のあるファイルを見つけます。 TypeScript は依然として JavaScript ファイルの形式でクラス ライブラリを公開していますが、その結果、型を表現できず、型を記述するために宣言ファイルが必要となるため、宣言ファイルはクラス ライブラリの不可欠な部分となっています。

2. 分類

Angular は TypeScript 言語を使用して開発されています。 前のセクションで説明したように、 クラス ライブラリを使用するには宣言ファイルが存在するかどうかが必須です。 です。 🎜

宣言ファイルがあります

🎜 クラス ライブラリに宣言ファイル *.d.ts があるかどうかを区別するには、次の 2 つの側面から確認できます。 🎜🎜 1 、 クラス ライブラリが付属しています🎜🎜 Npm から依存パッケージをインストールした後、そのライブラリの package.jsontypings が含まれているかどうかを直接確認できます。 moment のようなノード:🎜rrreee🎜2. TypeSearch の取得🎜🎜TypeScript では、キーワードを直接入力して、宣言ファイルが正しいかどうかを確認できます。クラスライブラリが含まれています。 🎜🎜たとえば、リスト内の lodash をクリックすると、npm Web サイトにジャンプし、次のようなコマンドが表示されます: 🎜rrreee

宣言ファイルなし

🎜このような状況は非常に良いです。たとえば、以前は G2 に宣言ファイルがありませんでした。この場合、宣言ファイルは自分で記述するしかありません。 🎜🎜 Angular Cli で作成されたプロジェクトには src/typings.d.ts 宣言ファイルが含まれており、 これはグローバル宣言定義に自動的に組み込まれます。免責事項情報を記載する場所。 🎜🎜一般に、クラス ライブラリの完全な宣言ファイルを作成するのは困難です。これはコスト効率が高すぎるため、多くの場合、一部のグローバル オブジェクトの any のみになります (静的オブジェクトを無視することを意味します)。 type check) も使用できます。例: 🎜rrreee

3. どのように使用しますか?

🎜ステートメントファイルはリンクになっており、このように使い方が分かれています。 🎜🎜宣言ファイルの場合は、モジュールをインポートするために必要な場所で import を使用するだけです。例: 🎜rrreee

宣言ファイルなし

🎜重要 宣言ファイルがない場合の対処方法を見てみましょう。前述したように、静的型チェックを無視することを示すために any を使用すると、ユーザーは宣言ファイルによってもたらされるスマートなプロンプトを享受できなくなります。 🎜🎜G2 と同様に、プロジェクト内のどこでも直接使用できますが、認識できるのは G2 変数のみであり、インスタンスのメソッドやプロパティは認識されません。 🎜rrreee🎜 さらに、TypeScript はコンパイル プロセス中に G2 の型チェックを実行しません。G2 が実際に存在するかどうかは自分で判断するしかありません。 Angular の場合、これらのモジュールは .angular-cli.jsonscripts ノードに明示的にロードする必要があります。 (さらに詳しく知りたい場合は、PHP 中国語 Web サイト🎜AngularJS 開発マニュアル🎜 にアクセスして学習してください)🎜rrreee🎜 TypeScript は、G2 関連を手動でロードしない場合は、まだ JavaScript コードです。 JavaScript ファイルを実行すると、当然、G2 が見つからないというエラーが発生します。 🎜

概要

🎜 TypeScript の観点からサードパーティ ライブラリの使用方法を見ると、異なる印象を受けるでしょう。これは単純で信頼性は低いですが、効果的な説明です。もっとよく知っている人たちが慈悲を示してくれることを願っています。 🎜
ここで G2 の信用を傷つける意図はありません。G2 は宣言ファイルを提供しています。 🎜🎜この記事はここで終わります (さらに詳しく知りたい場合は、PHP 中国語 Web サイト 🎜AngularJS ユーザー マニュアル🎜 にアクセスして学習してください)。ご質問がある場合は、以下にメッセージを残してください。 🎜🎜🎜

以上がangularjs でサードパーティのライブラリを使用するにはどうすればよいですか? angularjs でのサードパーティ ライブラリの使用の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。