鍍金池/ 教程/ HTML/ 三斜線指令
初始化項(xiàng)目結(jié)構(gòu)
聯(lián)合類(lèi)型
介紹
介紹
介紹
編譯選項(xiàng)
TypeScript 1.6
介紹
介紹
發(fā)展路線圖
介紹
在MSBuild里使用編譯選項(xiàng)
可迭代性
TypeScript 1.3
介紹
介紹
TypeScript 1.1
變量聲明
即將到來(lái)的Angular 2框架是使用TypeScript開(kāi)發(fā)的。 因此Angular和TypeScript一起使用非常簡(jiǎn)單方便
tsconfig.json
介紹
介紹
介紹
在MSBuild里使用編譯選項(xiàng)
使用TypeScript的每日構(gòu)建版本
新建工程
枚舉
三斜線指令
結(jié)合ASP.NET v5使用TypeScript
TypeScript里的this
介紹
TypeScript 1.4
編碼規(guī)范
介紹
模塊解析
ASP.NET 4
架構(gòu)概述
介紹
介紹
ASP.NET Core
TypeScript 1.8
介紹
介紹
創(chuàng)建簡(jiǎn)單工程
TypeScript 1.7
TypeScript 1.5
NPM包的類(lèi)型
支持TypeScript的編輯器

三斜線指令

三斜線指令是包含單個(gè)XML標(biāo)簽的單行注釋。 注釋的內(nèi)容會(huì)做為編譯器指令使用。

三斜線指令可放在包含它的文件的最頂端。 一個(gè)三斜線指令的前面只能出現(xiàn)單行或多行注釋?zhuān)@包括其它的三斜線指令。 如果它們出現(xiàn)在一個(gè)語(yǔ)句或聲明之后,那么它們會(huì)被當(dāng)做普通的單行注釋?zhuān)⑶也痪哂刑厥獾暮x。

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

/// <reference path="..." />指令是三斜線指令中最常見(jiàn)的一種。 它用于聲明文件間的依賴(lài)

三斜線引用告訴編譯器在編譯過(guò)程中要引入的額外的文件。

當(dāng)使用--out--outFile時(shí),它也可以做為調(diào)整輸出內(nèi)容順序的一種方法。 文件在輸出文件內(nèi)容中的位置與經(jīng)過(guò)預(yù)處理后的輸入順序一致。

預(yù)處理輸入文件

編譯器會(huì)對(duì)輸入文件進(jìn)行預(yù)處理來(lái)解析所有三斜線引用指令。 在這個(gè)過(guò)程中,額外的文件會(huì)加到編譯過(guò)程中。

這個(gè)過(guò)程會(huì)以一些根文件開(kāi)始; 它們是在命令行中指定的文件或是在tsconfig.json中的"files"列表里的文件。 這些根文件按指定的順序進(jìn)行預(yù)處理。 在一個(gè)文件被加入列表前,它包含的所有三斜線引用都要被處理,還有它們包含的目標(biāo)。 三斜線引用以它們?cè)谖募锍霈F(xiàn)的順序,使用深度優(yōu)先的方式解析。

一個(gè)三斜線引用路徑是相對(duì)于包含它的文件的,如果不是根文件。

錯(cuò)誤

引用不存在的文件會(huì)報(bào)錯(cuò)。 一個(gè)文件用三斜線指令引用自己會(huì)報(bào)錯(cuò)。

使用 --noResolve

如果指定了--noResolve編譯選項(xiàng),三斜線引用會(huì)被忽略;它們不會(huì)增加新文件,也不會(huì)改變給定文件的順序。

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

這個(gè)指令把一個(gè)文件標(biāo)記成默認(rèn)庫(kù)。 你會(huì)在lib.d.ts文件和它不同的變體的頂端看到這個(gè)注釋。

這個(gè)指令告訴編譯器在編譯過(guò)程中不要包含這個(gè)默認(rèn)庫(kù)(比如,lib.d.ts)。 這與在命令行上使用--noLib相似。

還要注意,當(dāng)傳遞了--skipDefaultLibCheck時(shí),編譯器只會(huì)忽略檢查帶有/// <reference no-default-lib="true"/>的文件。

/// <amd-module />

默認(rèn)情況下生成的AMD模塊都是匿名的。 但是,當(dāng)一些工具需要處理生成的模塊時(shí)會(huì)產(chǎn)生問(wèn)題,比如r.js

amd-module指令允許給編譯器傳入一個(gè)可選的模塊名:

amdModule.ts
///<amd-module name='NamedModule'/>
export class C {
}

這會(huì)將NamedModule傳入到AMD define函數(shù)里:

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

/// <amd-dependency />

注意:這個(gè)指令被廢棄了。使用import "moduleName";語(yǔ)句代替。

/// <amd-dependency path="x" />告訴編譯器有一個(gè)非TypeScript模塊依賴(lài)需要被注入,做為目標(biāo)模塊require調(diào)用的一部分。

amd-dependency指令也可以帶一個(gè)可選的name屬性;它允許我們?yōu)閍md-dependency傳入一個(gè)可選名字:

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

生成的JavaScript代碼:

define(["require", "exports", "legacy/moduleA"], function (require, exports, moduleA) {
    moduleA.callStuff()
});
上一篇:介紹下一篇:支持TypeScript的編輯器