148

TypeScript 用の Google マップ API の定義ファイルに取り組んでいます。

そして、例えば型のような列挙型を定義する必要があります。とgoogle.maps.Animationの 2 つのプロパティが含まれています。BOUNCEDROP

TypeScriptでこれをどのように行うべきですか?

4

7 に答える 7

29

これは現在、言語の一部です。これに関するドキュメントについては、TypeScriptLang.org > Basic Types > enumを参照してください。これらの列挙型の使用方法に関するドキュメントからの抜粋:

enum Color {Red, Green, Blue};
var c: Color = Color.Green;

または手動のバッキング番号を使用する場合:

enum Color {Red = 1, Green = 2, Blue = 4};
var c: Color = Color.Green;

たとえば を使用して、列挙名に戻ることもできますColor[2]

これがどのように連携するかの例を次に示します。

module myModule {
    export enum Color {Red, Green, Blue};

    export class MyClass {
        myColor: Color;

        constructor() {
            console.log(this.myColor);
            this.myColor = Color.Blue;
            console.log(this.myColor);
            console.log(Color[this.myColor]);
        }
    }
}

var foo = new myModule.MyClass();

これはログに記録されます:

undefined  
2  
Blue

これを書いている時点で、Typescript Playground は次のコードを生成するためです。

var myModule;
(function (myModule) {
    (function (Color) {
        Color[Color["Red"] = 0] = "Red";
        Color[Color["Green"] = 1] = "Green";
        Color[Color["Blue"] = 2] = "Blue";
    })(myModule.Color || (myModule.Color = {}));
    var Color = myModule.Color;
    ;
    var MyClass = (function () {
        function MyClass() {
            console.log(this.myColor);
            this.myColor = Color.Blue;
            console.log(this.myColor);
            console.log(Color[this.myColor]);
        }
        return MyClass;
    })();
    myModule.MyClass = MyClass;
})(myModule || (myModule = {}));
var foo = new myModule.MyClass();
于 2015-08-17T13:23:02.910 に答える
14

次のID/文字列列挙型を使用できることに注意してください。

class EnumyObjects{
    public static BOUNCE={str:"Bounce",id:1};
    public static DROP={str:"Drop",id:2};
    public static FALL={str:"Fall",id:3};


}
于 2012-10-04T23:29:02.673 に答える