国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angular 如何使用第三方庫的方法

2024-05-06 15:19:53
字體:
來源:轉載
供稿:網友

Angular 的組件與模塊看似好像與現有各種第三方類庫(例如:lodash、moment 等)使用上有點格格不入,這很大的原因是 TypeScript 造成的假象。三足鼎立的前端其實都是雷同的,不管是哪種前端框架都可以使用到這些第三方類庫。

以下我將從另一個視角解釋 Angular 如何使用第三方類庫的一種經驗做法。

一、寫在前面

在開始之前,需要先了解一下 TypeScript 模塊系統 ——模塊是指在其自身作用域里執行,而不是在全局作用域里;模塊間是依靠 export 和 import 建立關系。編譯器在編譯過程中,也是依賴這種關系來定位需要編譯的文件。

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.tsdeclare var G2: any;

三、如何使用?

聲明文件是紐帶,依然以這種方式來劃分如何使用。

對于有聲明文件,無需額外做什么,只需在需要模塊的地方使用 import 來導入即可,例如:

import * as moment from 'moment';moment(); // 當前時間

無聲明文件

重要來看無聲明文件時怎么做,前面說到使用 any 來表示忽略靜態類型檢查,意味者無法享受聲明文件帶來的智能提示快感。

像 G2 ,我們可以在項目的任意位置直接使用它,但也僅僅只能識別 G2 變量,而實例的方法或屬性是不可知的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 台湾省| 沂水县| 霍州市| 隆林| 峨眉山市| 牡丹江市| 伊金霍洛旗| 广饶县| 百色市| 库尔勒市| 公主岭市| 兖州市| 永靖县| 平谷区| 锡林浩特市| 扬州市| 四子王旗| 托克托县| 陵水| 化德县| 寿光市| 九寨沟县| 中超| 天峨县| 图片| 高雄市| 玛曲县| 永靖县| 紫云| 克山县| 修水县| 梅河口市| 泸西县| 双柏县| 浙江省| 咸阳市| 酉阳| 临沧市| 裕民县| 阿克陶县| 南木林县|