1. ホーム
  2. typescript

[解決済み] TypeScriptの予約語 "type "とは何ですか?

2022-07-06 18:30:40

質問

TypeScriptでインターフェースを作ろうとして気づいたのですが、"type"はキーワードか予約語のどちらかです。例えばTypeScript 1.4のVisual Studio 2013で以下のようなインターフェースを作成すると、"type"が青で表示されます。

interface IExampleInterface {
    type: string;
}

次に、このようなインターフェイスをクラスで実装してみるとしましょう。

class ExampleClass implements IExampleInterface {
    public type: string;

    constructor() {
        this.type = "Example";
    }
}

クラスの最初の行で、インターフェイスに必要なプロパティを実装するために "type" と入力すると(すみません)、 "type" が "typeof" や "new" などのキーワードと同じアイコンでインテリセンスが表示されます。

いろいろと調べてみたところ、次のようなものが見つかりました。 GitHub の問題 で、TypeScript の "type" を "strict mode reserved word" として挙げていますが、その目的が実際何なのかについての詳細な情報は見つかりませんでした。

これは私の脳みそがおかしくなっていて、すでに知っているべき当然のことだと思うのですが、TypeScript の予約語 "type" は何のためにあるのでしょうか?

どのように解決するのですか?

これは、quot;タイプエイリアス"に使用されます。例えば

type StringOrNumber = string | number;
type DictionaryOfStringAndPerson = Dictionary<string, Person>;

参照 (編集: 古くなったリンクを削除) TypeScript Specification v1.5 (セクション 3.9, "Type Aliases", ページ 46 & 47)を参照してください。

更新 : (編集: 古いリンクを削除しました) 現在、1.8 spec のセクション 3.10 にあります。更新された仕様とリンクを提供してくれた @RandallFlagg に感謝します。

更新 : (編集: 非推奨のリンク) TypeScriptハンドブック で、quot;Type Aliases"で検索すると、対応するセクションにたどり着くことができます。

更新 : 現在では として扱われるようになり、TypeScript Handbook の .