Typescriptジェネリックは型の問題を返します

Dec 14 2020

プロジェクトでtypescriptジェネリックを使用していますが、うまく機能していないようです。

例:

interface Test<T, P> {
  a?: (v: T) => P
  b?: (v: P) => void
}

const fn1 = <T, P>(_config: Test<T, P>) => {}

fn1({
  a: (p) => 1,
  b: (p) => {},
})

私は次のようにparams 'a'タイプすると思います:

Test<unknown, number>.a?: ((v: unknown) => number) | undefined

でも実は:

Test<unknown, unknown>.a?: ((v: unknown) => unknown) | undefined

理由はわかりません、誰かが私を助けることができますか?ありがとう。

回答

Passersby Dec 14 2020 at 13:15

この行でタイプを定義していないので: b: (p) => {}

その場合、TSは、上記の定義でPを返しても、Pのタイプを推測できませんa