- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TypeScript 声明文件结构
TypeScript 声明⽂件结构
TypeScript 声明⽂件结构
概述
⼀般来讲,你组织声明⽂件的⽅式取决于库是如何被使⽤的。 在JavaScript⾥提供了
多库的使⽤⽅法,这就需要你书写声明⽂件去匹配它们。 这篇指南涵盖了如何识别
常见库的模式,与怎么样书写符合相应模式的声明⽂件。
针对每种主要的库的组织模式,在模版⼀节都有对应的⽂件。 你可以利⽤它们帮助你
快速上⼿。
识别库的类型
⾸先,我们先看⼀下TypeScript声明⽂件能够表⽰的库的类型。 这⾥会简单展⽰每种
类型的库的使⽤⽅式,如何去书写,还有⼀些真实案例。
识别库的类型是书写声明⽂件的第⼀步。 我们将会给出⼀些提⽰,关于怎样通过库
的 使⽤⽅法及其源码来识别库的类型。 根据库的⽂档及组织结构不同,这两种⽅式
可能⼀个会⽐另外的那个简单⼀些。 我们推荐你使⽤任意你喜欢的⽅式。
全局库
全局库是指能在全局命名空间下访问的 (例如:不需要使⽤任何形式的import)。
许多库都是简单的暴露出⼀个或多个全局变量。 ⽐如,如果你使⽤过 j Query ,$变量
可以被够简单的引⽤:
$(() = { console.log(hello!); } );
你经常会在全局库的指南⽂档上看到如何在HTML⾥⽤脚本标签引⽤库:
script src=http://a.great.cdn. or/someLib.js/script
⽬前,⼤多数流⾏的全局访问型库实际上都以UMD库的形式进⾏书写 (见后⽂)。
UMD库的⽂档 难与全局库⽂档两者之间难以区分。 在书写全局声明⽂件前,⼀定
要确认⼀下库是否真的不是UMD 。
从代码上识别全局库
全局库的代码通常都⼗分简单。 ⼀个全局的“Hello , world”库可能是这样的:
unction createGreeting(s) {
return Hello, + s;
}
或这样:
window .createGreeting = unction(s) {
return Hello, + s;
}
当你查看全局库的源代码时,你通常会看到:
顶级的var语句或 unction声明
⼀个或多个赋值语句到window .someName
假设DOM原始值像document或window是存在的
你不会看到:
检查是否使⽤或如何使⽤模块加载器,⽐如require或de ine
Commo JS/Node .j s风格的导⼊如var s = require( s);
de ine(...)调⽤
⽂档⾥说明了如果require或导⼊这个库
全局库的例⼦
由于把⼀个全局库转变成UMD库是⾮常容易的,所以 少流⾏的库还再使⽤全局的风
格。 然⽽,⼩型的且需要DOM (或 没有依赖)的库可能还是全局类型的。
全局库模版
模版⽂件global.d.ts定义了myLib库作为例⼦。 ⼀定要阅读 防⽌命名冲突补充
说明。
模块化库
⼀些库只能⼯作在模块加载器的环境下。 ⽐如,像 express只能在Node .j s⾥⼯作所
以必须使⽤Commo JS的require函数加载。
ECMAScript 20 15 (也就是ES20 15 ,ECMAScript 6或ES6 ),Commo JS和RequireJS具
有相似的导⼊⼀个模块的表⽰⽅法。 例如,对于JavaScript Commo JS (Node .j s ),
有下⾯的代码
var s = require( s);
对于TypeScript或ES6 ,import关键字也具有相同的作⽤:
import s = require( s);
你通常会在模块化库的⽂档⾥看到如下说明:
var someLib = require(someLib);
或
de ine(..., [someLib], unction(someLib) {
});
与全局模块⼀样,你也可能会在UMD模块的⽂档⾥看到这些例⼦,因此要仔细查看源
码和⽂档。
从代码上识别模块化库
模块库⾄少会包含下列具有代表性的条⽬之⼀:
⽆条件的调⽤require或de ine
像import * as a rom b; or export c;这样的声明
赋值给exports或module.exports
它
文档评论(0)