2016-11-08 5 views
0

enum型をパラメータとしてデコレータ関数に渡すことはできますか?Typescript:デコレータパラメータとしてのenum型

export class A { 
    @AsEnum(SomeEnum) 
    name: string; 
} 

export enum SomeEnum { A, B, C} 

export function AsEnum(type): any { 
    return (target, propert) => { 
     return { 
      get: function(): Object { 
       return type; // type is undefined 
      }, 
     } 
    }; 
} 

ここでの型は常に定義されていません。

答えて

0

問題はコードの順番です。
あなたがやる場合:あなたが買ってあげる

console.log("the enum: ", SomeEnum); 
export enum SomeEnum { A, B, C} 

列挙:

を未定義あなたが呼び出すときにそれを使用する前に、SomeEnumの宣言を配置する必要がありますデコレータ:

function AsEnum(type): any { 
    return (target, propert) => { 
     return { 
      get: function(): Object { 
       return type; // type is undefined 
      }, 
     } 
    }; 
} 

enum SomeEnum { A, B, C} 

class A { 
    @AsEnum(SomeEnum) 
    name: string; 
} 

あなたがデコレータのためにそれを使用しようとするとき、通訳者はenumをまだ評価していません。

+0

多くのthx、これは役立ちます –

関連する問題