最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年04月18日 10:39:37   作者:cipchk  
本篇文章主要介紹了Angular 如何使用第三方庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

一、寫在前面

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

TypeScript 依然還是以 JavaScript 文件的形式發(fā)布類庫,這會導(dǎo)致類型無法表述,需要配合聲明文件對其進(jìn)行類型描述;因此聲明文件成了類庫一個必不可少的組成部分。

二、分類

Angular 使用 TypeScript 語言開發(fā),誠如上一小節(jié)講來說,要想讓一個類庫被運用,要件是有沒有聲明文件。

有聲明文件

要分清類庫是否有聲明文件 *.d.ts,可以從兩個方面來確認(rèn)這件事:

1、類庫自帶

從 Npm 安裝一個依賴包后,可以直接檢查其庫的 package.json 是否包含 typings 節(jié)點,例如 moment:

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

2、TypeSearch檢索

TypeScript 提供了一個叫 TypeSearch 網(wǎng)站,可以直接輸入關(guān)鍵詞檢查是否包含該類庫的聲明文件。

例如 lodash 可以在列表中點擊會跳轉(zhuǎn)至 npm 網(wǎng)站,并且會看到這樣的一個命令:

npm install --save @types/lodash

無聲明文件

這類情況還蠻常見,例如早一點時間 G2 就沒有聲明文件,這種情況下只能自行編寫聲明文件。

Angular Cli 創(chuàng)建的項目會包含一個 src/typings.d.ts 聲明文件,它會自動包含在全局聲明定義中,而把這些類庫的聲明信息寫在這里面再好不過。

一般而言自己很難對一個類庫寫一個完整的聲明文件,這對于成本來說太不合算,因此往往都是只對部分全局對象做一個 any (表示忽略該靜態(tài)類型檢查)亦可,例如:

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

三、如何使用?

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

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

import * as moment from 'moment';

moment(); // 當(dāng)前時間

無聲明文件

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

像 G2 ,我們可以在項目的任意位置直接使用它,但也僅僅只能識別 G2 變量,而實例的方法或?qū)傩允遣豢芍摹?/p>

// app.component.ts

const g2 = new G2();
g2. // 輸入 `.` 后是不會有任何方法或?qū)傩?

除此之外 TypeScript 編譯過程中也不會對 G2 做任何類型檢查,G2 是否真的存在只能由自己把握。對于 Angular 而言,是需要額外在 .angular-cli.json 的 scripts 節(jié)點上明確加載這些模塊。

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

TypeScript 編譯后依然還是 JavaScript 代碼,假如不手動加載 G2 相關(guān) JavaScript 文件,自然在運行過程中會提供未找到 G2 的錯誤。

總結(jié)

從 TypeScript 的視角來看如何使用第三方類庫,會有不同的感覺,只是一個簡單的非靠譜但有效的描述。希望懂得多的人手下留情。

這里無意黑 G2 的意思,現(xiàn) G2 已經(jīng)提供了聲明文件了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • AngularJS 單元測試(一)詳解

    AngularJS 單元測試(一)詳解

    這篇文章主要介紹了AngularJS 單元測試(一)詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Angularjs 實現(xiàn)一個幻燈片示例代碼

    Angularjs 實現(xiàn)一個幻燈片示例代碼

    本文主要介紹Angularjs 寫一個幻燈片的知識,這里整理了詳細(xì)的資料,及實現(xiàn)代碼和實現(xiàn)效果圖有需要的小伙伴可以參考下
    2016-09-09
  • 詳解Angular組件之生命周期(二)

    詳解Angular組件之生命周期(二)

    Angular本身監(jiān)督所有Angular組件和指令的生命周期 。為了在開發(fā)應(yīng)用程序時順利進(jìn)行,您必須了解結(jié)果的生命周期。組件是任何Angular應(yīng)用程序的主要構(gòu)建塊。因此,必須了解它們才能理解組件生命周期的處理步驟。只有這樣才能在應(yīng)用程序的開發(fā)中實現(xiàn)。
    2021-05-05
  • Angular ng-animate和ng-cookies用法詳解

    Angular ng-animate和ng-cookies用法詳解

    本文講一下Angular中動畫應(yīng)用的部分。這篇文章主要介紹了Angular ng-animate和ng-cookies用法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Angularjs注入攔截器實現(xiàn)Loading效果

    Angularjs注入攔截器實現(xiàn)Loading效果

    angularjs作為一個全ajax的框架,對于請求,如果頁面上不做任何操作的話,在結(jié)果反回來之前,頁面是沒有任何響應(yīng)的,不像普通的HTTP請求,會有進(jìn)度條之類
    2015-12-12
  • Angular.js中$resource高大上的數(shù)據(jù)交互詳解

    Angular.js中$resource高大上的數(shù)據(jù)交互詳解

    這篇文章主要給大家介紹了關(guān)于Angular.js中$resource高大上的數(shù)據(jù)交互的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用angular.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起看看吧。
    2017-07-07
  • 基于AngularJS實現(xiàn)表單驗證功能

    基于AngularJS實現(xiàn)表單驗證功能

    這篇文章主要為大家詳細(xì)介紹了基于AngularJS實現(xiàn)表單驗證功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • AngularJS bootstrap啟動詳解及實例代碼

    AngularJS bootstrap啟動詳解及實例代碼

    這篇文章主要介紹了AngularJS bootstrap啟動的知識,這里整理了相關(guān)資料及簡單實例代碼,,需要的朋友可以參考下
    2016-09-09
  • Angular2學(xué)習(xí)教程之組件中的DOM操作詳解

    Angular2學(xué)習(xí)教程之組件中的DOM操作詳解

    這篇文章主要給大家介紹了Angular2學(xué)習(xí)教程之組件中DOM操作的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來看看吧。
    2017-05-05
  • 詳解利用Angular實現(xiàn)多團(tuán)隊模塊化SPA開發(fā)框架

    詳解利用Angular實現(xiàn)多團(tuán)隊模塊化SPA開發(fā)框架

    本篇文章主要介紹了詳解利用Angular實現(xiàn)多團(tuán)隊模塊化SPA開發(fā)框架,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11

最新評論

伊金霍洛旗| 柘荣县| 沂源县| 广丰县| 海南省| 莎车县| 门头沟区| 儋州市| 陆良县| 东兰县| 武冈市| 临清市| 夏邑县| 洮南市| 西丰县| 威信县| 武宣县| 常德市| 桦甸市| 新建县| 柘城县| 日喀则市| 紫阳县| 师宗县| 定远县| 若尔盖县| 萨迦县| 金湖县| 县级市| 秦皇岛市| 大理市| 华安县| 临湘市| 清河县| 襄樊市| 古浪县| 和林格尔县| 永定县| 类乌齐县| 湘西| 星子县|