このガイドの目的は、質の高い定義ファイルの書き方を指南することです。 このガイドでは、APIのサンプルとそのAPIの使用例、および対応する宣言の記述方法を示しています。

これらの例は、概ね下にいくほど複雑な順に並べられています。

グローバル変数

ドキュメント

数値(number)を含むグローバルな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 functionsを使用して関数を宣言します。

宣言
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関数は数値を受け取り、ウィジェットを返します。 または、文字列を受け取り、ウィジェットの配列を返します。

コード
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. greeting: (必須) 文字列
  2. duration: (任意) 時間(ミリ秒)
  3. color: (任意) 文字列(例: '#ff00ff')
コード
greet({
  greeting: "hello world",
  duration: 4000
});

プロパティの型の定義には、インターフェースを使用します。

宣言
interface GreetingSettings {
  greeting: string;
  duration?: number;
  color?: string;
}

declare function greet(setting: GreetingSettings): void;

再利用可能な型(型エイリアス)

ドキュメント

挨拶を返すことが期待できるものであれば、文字列、文字列を返す関数、またはGreeterインスタンスが提供可能です。

コード
function getGreeting() {
    return "howdy";
}
class MyGreeter extends Greeter { }

greet("hello");
greet(getGreeting);
greet(new MyGreeter());

型エイリアスを使用して、型の省略形を作ることができます。

宣言
type GreetingLike = string | (() => string) | Greeting;

declare function greet(g: GreetingLike): void;

型の組織化

ドキュメント

greeterオブジェクトは、ファイルにログを記録したり、アラートを表示することができます。 .log(...)用にLogOptionsを、.alert(...)用にAlertOptionsを提供します。

コード
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;
    }
}

また、1つの宣言に名前空間を入れ子にして作成することも可能です。

宣言 (入れ子の名前空間を使用)
declare namespace GreetingLib.Options {
    // GreetingLib.Options.Logを介して参照
    interface Log {
        verbose?: boolean;
    }
    interface Alert {
        modal: boolean;
        title?: string;
        color?: string;
    }
}

クラス

ドキュメント

Greeterオブジェクトをインスタンス化することで挨拶を作成したり、 それを拡張してカスタマイズされた挨拶を作成したりすることができます。

コード
const myGreeter = new Greeter("hello, world");
myGreeter.greeting = "howdy";
myGreeter.showGreeting();

class SpecialGreeter extends Greeter {
    constructor() {
        super("Very special greetings");
    }
}

declare classを使用して、クラスまたはクラスのようなオブジェクトを記述します。 クラスは、プロパティとメソッドだけでなく、コンストラクタも持つことができます。

宣言
declare class Greeter {
    constructor(greeting: string);

    greeting: string;
    showGreeting(): void;
}

 Back to top

© https://github.com/Microsoft/TypeScript-Handbook

このページは、ページトップのリンク先のTypeScript-Handbook内のページを翻訳した内容を基に構成されています。 下記の項目を確認し、必要に応じて公式のドキュメントをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • ドキュメントの情報が古い可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報やより分かり易くするための追記を行っている事があります。