博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何创建高质量的TypeScript声明文件(三)
阅读量:5895 次
发布时间:2019-06-19

本文共 1326 字,大约阅读时间需要 4 分钟。

hot3.png

转载 

继续上篇文章[]

模块插件或UMD插件

模块插件更改另一个模块(UMD或模块)的形状。 例如,在Moment.js中,时刻范围为时刻对象添加了一个新的范围方法。

出于编写声明文件的目的,无论要更改的模块是普通模块还是UMD模块,您都将编写相同的代码。

模板

使用module-plugin.d.ts模板。

全局插件

全局插件是改变某些全局形状的全局代码。 与全局修改模块一样,这些会增加运行时冲突的可能性。

例如,某些库将新函数添加到Array.prototype或String.prototype。

识别全局插件

全局插件通常很容易从他们的文档中识别出来。

您将看到如下所示的示例:

var x = "hello, world";// Creates new methods on built-in typesconsole.log(x.startsWithHello());var y = [1, 2, 3];// Creates new methods on built-in typesconsole.log(y.reverseAndSort());

模板

使用global-plugin.d.ts模板。

全局修改模块

全局修改模块在导入时会更改全局范围中的现有值。 例如,可能存在一个库,在导入时会向String.prototype添加新成员。 由于运行时冲突的可能性,这种模式有点危险,但我们仍然可以为它编写声明文件。

识别全局修改模块

全局修改模块通常很容易从其文档中识别。 通常,它们与全局插件类似,但需要一个require调用来激活它们的效果。

你可能会看到这样的文档:

// 'require' call that doesn't use its return valuevar unused = require("magic-string-time");/* or */require("magic-string-time");var x = "hello, world";// Creates new methods on built-in typesconsole.log(x.startsWithHello());var y = [1, 2, 3];// Creates new methods on built-in typesconsole.log(y.reverseAndSort());

模板

使用global-modifying-module.d.ts模板。

使用依赖性

您可能拥有多种依赖关系。

对全局库的依赖

如果您的库依赖于全局库,请使用/// <reference types ="..."/>指令:

/// 
function getThing(): someLib.thing;

对模块的依赖性

如果您的库依赖于模块,请使用import语句:

import * as moment from "moment";function getThing(): moment;

未完待续...

转载于:https://my.oschina.net/zhangdapeng89/blog/2872383

你可能感兴趣的文章
CUDA和TensorFlow的版本匹配问题
查看>>
gerrit安装及其注意事项
查看>>
设置grid行字体颜色为红色
查看>>
jQuery 快捷操作
查看>>
windows docker
查看>>
Springboot中发送邮件util
查看>>
「小程序JAVA实战」小程序的视频展示页面初始化(63)
查看>>
瀑布开发模式和敏捷开发模式
查看>>
1.单一职责原则
查看>>
98.Ext.form.Label组件的基本用法
查看>>
Maven配置ojdbc14-10.2.0.4.0.jar
查看>>
Java的封装性、继承性和多态性
查看>>
靶形数独
查看>>
支持向量机(四)——非线性支持向量机
查看>>
php遍历对象属性,可以使用foreach,直接打印出属性
查看>>
jquery下ie的margin-left ----bug 以及parseInt方法bug
查看>>
jdbc
查看>>
[c++]合并排序多个已排好序的单项链表
查看>>
[六省联考2017]相逢是问候——欧拉定理+线段树
查看>>
JS常用的正则表达式
查看>>