转发 如何创建高质量的TypeScript声明文件(五) - 示例
前面四篇文章一起介绍了在声明文件中关于库结构的一些介绍,本篇文章之后分享一些API的文档,还有它们的使用示例,并且阐述如何为他们创建声明文件
这些示例以大致递增的复杂度顺序排序。
- 全局变量
- 全局函数
- 具有属性的对象
- 重载函数
- 可重用类型(接口)
- 可重用类型(类型别名)
- 组织类型
- 类
示例
全局变量
文档
全局变量foo包含存在的小部件数。
代码
console.log("Half the number of widgets is " + (foo / 2));
声明
使用declare var来声明变量。如果变量是只读的,则可以使用declare const。如果变量是块作用域的,您也可以使用declare let。
/** The number of widgets present */
declare var foo: number;
全局函数
文档
您可以使用字符串调用函数greet来向用户显示问候语。
代码
greet("hello, world");
声明
使用declare function声明函数。
declare function greet(greeting: string): void;
具有属性的对象
文档
全局变量myLib有一个用于创建问候语的makeGreeting函数,以及一个属性numberOfGreetings,用于指示到目前为止所做的问候数。
代码
let result = myLib.makeGreeting("hello, world");
console.log("The computed greeting is:" + result);
let count = myLib.numberOfGreetings;
声明
使用declare namespace描述由点式表示法访问的类型或值。
declare namespace myLib {
function makeGreeting(s: string): string;
let numberOfGreetings: number;
}
重载函数
文档
getWidget函数接受一个数字并返回一个Widget,或者接受一个字符串并返回一个Widget数组。
代码
let x: Widget = getWidget(43);
let arr: Widget[] = getWidget("all of them");
声明
declare function getWidget(n: number): Widget;
declare function getWidget(s: string): Widget[];
可重用类型(接口)
文档
指定问候语时,必须传递GreetingSettings对象。该对象具有以下属性:
1 - 问候语:必填字符串 2 - 持续时间:可选的时间长度(以毫秒为单位) 3 - 颜色:可选字符串,例如"#FF00FF"
代码
greet({
greeting: "hello world",
duration: 4000
});
声明
使用接口定义具有属性的类型。
interface GreetingSettings {
greeting: string;
duration?: number;
color?: string;
}
declare function greet(setting: GreetingSettings): void;
未完待续...