2017-12-19 27 views
0

メソッドデコレータを定義するために使用できるTypedPropertyDescriptorがあるため、コンパイラに装飾されたメソッドのパラメータ型を推測させる方法はありますか?TypeScriptのメソッドデコレータの型推論はありますか?

function test(
    target: any, 
    propName: string | symbol, 
    descriptor: TypedPropertyDescriptor<(x: number) => any> 
) { 
} 

class T { 
    @test 
    log(n) { // <-- compiler complains that n has type of implicit any 

    } 
} 
(x: number) => any

TypedPropertyDescriptorに渡されたように、チェックを入力する必要がありtestによって装飾すべての方法は、このようにコードの上に、タイプ(x: number) => anyでなければならないことを意味します。

したがって、このタイプの推論はまだサポートされていませんか、またはこのコードタイプのチェックを行うことができるものがありませんか?

+0

多分これ意志をヘルプhttps://github.com/SierraSoftworks/Iridium/blob/release/lib/Decorators.ts –

答えて

1

多くの場合、TypeScriptはcontextual typingですが、これは1つではありません。

パラメータに型注釈を追加します。

class T { 
    @test 
    log(n: number) { 

    } 
} 

タイプはまだデコレータは、文脈型情報を提供していないにもかかわらず、デコレータに関連してチェックされます

class T { 
    @test 
    log(n: string) { // ERROR! 

    } 
} 
関連する問題