टाइपस्क्रिप्ट जेनरिक प्रकार के मुद्दे लौटाते हैं

Dec 14 2020

मैं अपनी परियोजना में टाइपस्क्रिप्ट जेनेरिक का उपयोग करता हूं लेकिन ऐसा लगता है कि यह अच्छी तरह से काम नहीं करता है।

उदाहरण:

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) => {}

तब टीएस पी के प्रकार का अनुमान नहीं लगा सकता है, भले ही आप इसे उपरोक्त परिभाषा में वापस कर दें a