轉載 如何建立高質量的TypeScript聲明文件(六) - 示例函數
繼續上篇文章【如何建立高質量的TypeScript聲明文件(五) - 示例】 上篇文章介紹了spa
幾種示例code
下面繼續分享剩餘的幾種示例對象
可重用類型(類型別名)blog
文檔接口
在須要問候語的任何地方,您能夠提供字符串,返回字符串的函數或Greeter實例。ip
代碼ci
function getGreeting() { return "howdy"; } class MyGreeter extends Greeter { } greet("hello"); greet(getGreeting); greet(new MyGreeter());
聲明文檔
您可使用類型別名來爲類型建立簡寫:字符串
type GreetingLike = string | (() => string) | MyGreeter; declare function greet(g: GreetingLike): void;
組織類型
文檔
greeter對象能夠記錄到文件或顯示警報。 您能夠向.log(...)提供LogOptions,併爲.alert(...)提供警報選項
代碼
const g = new Greeter("Hello"); g.log({ verbose: true }); g.alert({ modal: false, title: "Current Greeting" });
聲明
使用命名空間來組織類型。
declare namespace GreetingLib { interface LogOptions { verbose?: boolean; } interface AlertOptions { modal: boolean; title?: string; color?: string; } }
您還能夠在一個聲明中建立嵌套的命名空間:
declare namespace GreetingLib.Options { // Refer to via GreetingLib.Options.Log interface Log { verbose?: boolean; } interface Alert { modal: boolean; title?: string; color?: string; } }
具備屬性的對象
文檔
您能夠經過實例化Greeter對象來建立一個greeter,或者經過從中擴展來建立一個自定義的greeter。
代碼
const myGreeter = new Greeter("hello, world"); myGreeter.greeting = "howdy"; myGreeter.showGreeting(); class SpecialGreeter extends Greeter { constructor() { super("Very special greetings"); } }
聲明
使用declare類來描述類或類類對象。 類能夠具備屬性和方法以及構造函數。
declare class Greeter { constructor(greeting: string); greeting: string; showGreeting(): void; }