0xf

日記だよ

2021-05-24から1日間の記事一覧

関数の戻り値型の記述でジェネリクス型を利用すると unknown が出がち

特に理由もきちんと追えてないけど、ハマったやつもう一つ。最初 async function と Promise の固有の挙動かなと思ったけどそうではなかった。 // これは期待通り Rが推論される function sample<P, R, F extends (params: P) => { result: R }>(f: F, params: P) : R { return f(params).re</p,>…

高階関数の型定義で戻り値に ReturnType<T> を使う際に as を避けられないことへの納得

最初どうしてコンパイル通らないのか納得いかなかった function sample<T extends () => string>(f: T): ReturnType<T> { return f() // コンパイルエラーとなる } これがコンパイルエラーとなり、Type 'string' is not assignable to type 'ReturnType<T>' と言われてしまう。なん</t></t></t>…