2017-09-02 21 views
0

私はいくつかのjsライブラリのタイスクリプトのタイピングを書いています。私は、必要に応じて呼び出し可能なデコレータを宣言する必要があります:Typescriptのオプションの呼び出し可能なデコレータの入力

@model 
class User {} 

@model() 
class User {} 

@model('User') 
class User {} 

私はlib.es6.d.tsからClassDecoratorを使用しようとしたが、運に:もちろん

私は回避策として手動でタイピングを行うことができます。

export function model<TFunction extends Function>(target: TFunction): TFunction | void; 
export function model(name?: string): 
    <TFunction extends Function>(target: TFunction) => TFunction | void; 

この場合、既存のClassDecoratorタイプを再利用するにはどうすればよいですか?

答えて

1

問題あなたは、労働組合は呼び出し可能ではありませんだけの種類の一つが呼び出し可能であるため、この場合はので、これらの型の変数のみ、両方のタイプの共通のメンバーを持つユニオン型を使用しているある

交差タイプを探していますが、タイプタイプの両方のメンバーを持つ

export const model: ClassDecorator & CallableModelDecorator; 
+0

これは機能します。説明ありがとう。 Docs https://www.typescriptlang.org/docs/handbook/advanced-types.html – farwayer

関連する問題