日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

學(xué)TypeScript必然要了解declare

admin
2024年11月12日 22:24 本文熱度 1017

本文轉(zhuǎn)載于稀土掘金技術(shù)社區(qū),作者:努力學(xué)習(xí)前端的呆瓜

原文鏈接:https://juejin.cn/post/7402811318816702515

背景

declare關(guān)鍵字是為了服務(wù)TypeScript的。TypeScript是什么在這里就不多介紹了,但是我們要知道ts文件是需要TypeScript編譯器轉(zhuǎn)換為js文件才可以執(zhí)行,并且在編譯階段就會(huì)進(jìn)行類(lèi)型檢查。但是在TypeScript中并不支持js可識(shí)別的所有類(lèi)型,例如我們使用第三方庫(kù)JQuery,我們通過(guò)一下方法獲取一個(gè)id為‘foo’的標(biāo)簽元素。

$('#foo');
// or
jQuery('#foo');

然而在ts文件中,使用語(yǔ)法,語(yǔ)法,語(yǔ)法,底下就會(huì)爆出一條紅線提示到:Cannot find name '$'

?

因此,需要declare來(lái)聲明,告訴TypeScript編譯器該標(biāo)識(shí)符已存在,通過(guò)編譯時(shí)的檢查并在開(kāi)發(fā)時(shí)提供類(lèi)型提示。

定義

在 TypeScript 中,declare關(guān)鍵字告訴編譯器存在一個(gè)對(duì)象(并且可以在代碼中引用)。它向 TypeScript 編譯器聲明該對(duì)象。簡(jiǎn)而言之,它允許開(kāi)發(fā)人員使用在其他地方聲明的對(duì)象。
注:編譯器不會(huì)將declare語(yǔ)句編譯為 JavaScript。對(duì)比下面兩段代碼:

// declare聲明了一個(gè)名為 myGlobal 的全局變量,并指定其類(lèi)型為 any。
// 該聲明并不會(huì)生成真正的 JavaScript 代碼,而只是告訴 TypeScript 編譯器該變量存在。
declare var myGlobal: any;

// 給 myGlobal 賦值為 42。
myGlobal = 42
console.log(myGlobal); // 42
// 直接聲明了一個(gè)名為 myGlobal 的全局變量,并指定其類(lèi)型為 any。這會(huì)生成真正的 JavaScript 代碼。
var myGlobal: any;

// 給 myGlobal 賦值為 42。
myGlobal = 42;
console.log(myGlobal); // 42

使用

  • declare var 聲明全局變量
  • declare function 聲明全局方法
  • declare class 聲明全局類(lèi)
  • declare enum 聲明全局枚舉類(lèi)型
  • declare namespace 聲明(含有子屬性的)全局對(duì)象
  • declare global 擴(kuò)展全局變量
  • declare module 擴(kuò)展模塊

聲明文件

通常,在使用第三方庫(kù)或模塊時(shí),有兩種方式引入聲明文件:

  • 全局聲明:如果第三方庫(kù)或模塊是全局可訪問(wèn)的,你可以在整個(gè)項(xiàng)目的任何地方直接使用它們,而無(wú)需顯式導(dǎo)入。此時(shí),你只需要確保在 TypeScript 項(xiàng)目中正確引入了相應(yīng)的聲明文件。一般情況下,TypeScript 會(huì)自動(dòng)查找并加載全局聲明文件。如果沒(méi)有自動(dòng)加載,你可以使用 /// 的方式在具體的源文件中將聲明文件引入。
  • 模塊導(dǎo)入:如果第三方庫(kù)或模塊是通過(guò)模塊化方式提供的,你需要使用 import 語(yǔ)句將其導(dǎo)入到你的代碼中,同時(shí)也需要確保相應(yīng)的聲明文件被正確引入。在這種情況下,你可以使用 import 或 require 來(lái)引入庫(kù),并且不需要顯式地引入聲明文件,因?yàn)?TypeScript 編譯器會(huì)根據(jù)模塊的導(dǎo)入語(yǔ)句自動(dòng)查找和加載相應(yīng)的聲明文件。

有很多第三方庫(kù)提供了聲明文件,可以在packages.json文件中查看。types表示類(lèi)型聲明文件是哪一個(gè)。

可以使用 @types 統(tǒng)一管理第三方庫(kù)的聲明文件。@types 的使用方式很簡(jiǎn)單,直接用 npm 安裝對(duì)應(yīng)的聲明模塊即可,以 jQuery 舉例:

npm install @types/jquery --save-dev


該文章在 2024/11/13 14:42:57 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 98视频在线 | 在线a亚洲视频播 | 免费在线播放 | 又黄又爽 | 精品国产亚一区二区三区 | 国产精品亲子乱子伦 | 国产色系视频免费在线观看 | 日本在线播放一区二区三区 | 国产特黄精品一区二区在线 | 午夜免费福利不 | 九七九七色伦在线影院 | 国产又黄又硬又粗 | 成人免费看www网址入口 | 亚洲精品在线免费观看 | 美国十次啦超级大导航 | 国产精品人成电影在线观看 | 国产va免费精品 | 欧美亚洲综合成人a∨在线 亚洲国产中文字幕在线观看 | 国产精品成人a在线观看 | 好看的韩剧在线 | 亚洲中文字幕乱码一区 | 亚洲va韩国va欧美va | 欧美国产综合欧美视频 | 中字幕一区二区三区乱 | 精品国产免费人成电影在线观看 | 91视频在线 | 国产精品全网免费在线播放 | 老司机成人亚洲精品影院 | 在线欧美日韩精品一区二区 | 国产免费一区二区三区在线看 | 香港日本三级在线播放 | 成人自拍视频在 | 十分钟在线观看免费直播 | 成·人午夜在线观看 | 国产欧美亚洲一区二区 | 欧美精品专区在线视频 | 一本大道中文日本香蕉 | 国产v综合v亚洲欧美大另类 | 国产精品婷婷午夜 | 亚洲精品伊人 | 中文字幕在线影院 |