2017-07-28 24 views
1

指定された型パラメータを宣言するわけではないことを警告します型パラメータを明示的に宣言しないため、明示的な型引数を与えてはなりません。F#が、私は明示的に

しかし、このされていません。

let GetService<'T> (services : Services) = 
    services.[typeof<'T>] :?> 'T 

使用例:

let someService = services |> GetService<SomeServiceType> 

私は警告を取得しないように最初のバージョンを修正したい場合は、どのように私は定義を変更するのでしょうか?

答えて

2

エラーメッセージに示されているように、型パラメータを指定するだけです。これはうまくいくはずです:

let GetService<'T> : GetService<'T> = fun services -> 
    services.[typeof<'T>] :?> 'T 
+0

はい。ありがとう! –

関連する問題