中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TypeScript三重斜線指令的示例分析

發布時間:2021-09-07 09:33:37 來源:億速云 閱讀:132 作者:小新 欄目:web開發

這篇文章主要介紹TypeScript三重斜線指令的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

前言

TypeScript是Javascript的超集,實現以面向對象編程的方式使用Javascript。當然最后代碼還是編譯為Javascript。

三斜杠指令是包含單個XML標記的單行注釋。 注釋的內容用作編譯器指令。

三斜杠指令僅在其包含文件的頂部有效。 三重斜杠指令只能在單行或多行注釋之前,包括其他三重斜杠指令。 如果在聲明或聲明之后遇到它們,則將它們視為常規單行注釋,并且沒有特殊含義。

/// <reference path ="..."/>

/// <reference path ="..."/>指令是該組中最常見的。 它充當文件之間的依賴聲明。

三斜杠引用指示編譯器在編譯過程中包含其他文件。

它們還可以作為在使用–out或–outFile時對輸出進行排序的方法。 在預處理傳遞之后,文件以與輸入相同的順序發送到輸出文件位置。

該過程從一組根文件開始; 這些是在命令行或tsconfig.json文件的”files”列表中指定的文件名。 這些根文件按照指定的順序進行預處理。 在將文件添加到列表之前,將處理其中的所有三重斜杠引用,并包括其目標。 三重斜杠引用按照它們在文件中看到的順序以深度優先方式解析。

如果無根則,則相對于包含文件解析三斜杠參考路徑。

錯誤

引用不存在的文件是錯誤的。 如果文件具有對自身的三斜杠引用,則會出錯。

使用–noResolve

如果指定了編譯器標志–noResolve,則忽略三次斜杠引用; 它們既不會導致添加新文件,也不會更改所提供文件的順序。

/// <reference types="..." />

類似于/// <reference path ="..."/>指令,該指令用作依賴聲明; 但是, /// <references types ="..."/>指令聲明了對包的依賴性。

解析這些包名稱的過程類似于在import語句中解析模塊名稱的過程。 考慮三重斜杠引用類型指令的簡單方法是作為聲明包的導入。

例如,在聲明文件中包含/// <references types ="node"/>聲明此文件使用在types/node/index.d.ts中聲明的名稱; 因此,此包需要與聲明文件一起包含在編譯中。

只有在手動創建d.ts文件時才使用這些指令。

對于編譯期間生成的聲明文件,編譯器會自動為您添加/// <references types ="..."/>; 當且僅當生成的文件使用引用包中的任何聲明時,才會添加生成的聲明文件中的/// <reference types ="..."/>

/// <reference lib="..." />

該指令允許文件顯式包含現有的內置lib文件。

內置的lib文件以與tsconfig.json中的”lib”編譯器選項相同的方式引用(例如,使用lib=”es2015”而不是lib=”lib.es2015.d.ts”等)。

對于在內置類型上進行中繼的聲明文件作者,例如 建議使用DOM API或內置的JS運行時構造函數(如Symbol或Iterable,三斜杠引用lib指令)。 以前這些.d.ts文件必須添加此類型的前向/重復聲明。

例如,將/// <reference lib="es2017.string"/>添加到編譯中的一個文件等效于使用–lib es2017.string進行編譯。

/// <reference lib="es2017.string" />

"foo".padStart(4);

/// <reference no-default-lib="true"/>

該指令將文件標記為默認庫。 您將在lib.d.ts及其不同變體的頂部看到此注釋。

該指令指示編譯器不在編譯中包含默認庫(即lib.d.ts)。 這里的影響類似于在命令行上傳遞–noLib。

另請注意,在傳遞–skipDefaultLibCheck時,編譯器將僅跳過使用/// <reference no-default-lib ="true"/>檢查文件。

/// <amd-module />

默認情況下,AMD模塊是匿名生成的。 當使用其他工具處理結果模塊(例如捆綁器(例如r.js))時,這會導致問題。

amd-module指令允許將可選模塊名稱傳遞給編譯器:

amdModule.ts

///<amd-module name="NamedModule"/>
export class C {
}

將導致將名稱NamedModule分配給模塊作為調用AMD定義的一部分:

amdModule.js

define("NamedModule", ["require", "exports"], function (require, exports) {
 var C = (function () {
 function C() {
 }
 return C;
 })();
 exports.C = C;
});

/// <amd-dependency />

注意:此指令已被棄用。使用import”moduleName”;而是聲明。

/// <amd-dependency path ="x"/>通知編譯器需要在結果模塊的require調用中注入的非TS模塊依賴項。

amd-dependency指令也可以有一個可選的name屬性; 這允許傳遞amd依賴的可選名稱:

/// <amd-dependency path="legacy/moduleA" name="moduleA"/>
declare var moduleA:MyType
moduleA.callStuff()

生成的JS代碼:

define(["require", "exports", "legacy/moduleA"], function (require, exports, moduleA) {
 moduleA.callStuff()
});

以上是“TypeScript三重斜線指令的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝丰县| 逊克县| 磐石市| 清徐县| 洞口县| 壤塘县| 连江县| 桓台县| 西峡县| 和平区| 潞西市| 新郑市| 伊宁市| 神农架林区| 南汇区| 汉中市| 双城市| 沙坪坝区| 清苑县| 天峨县| 丘北县| 栾城县| 长岛县| 夹江县| 隆昌县| 德江县| 河源市| 绥芬河市| 嵩明县| 旌德县| 黑龙江省| 巴彦淖尔市| 阿鲁科尔沁旗| 肇州县| 宣威市| 大冶市| 蛟河市| 靖边县| 三河市| 凤凰县| 蒙自县|