क्या यह लागू करने का कोई तरीका है कि किसी फ़ंक्शन को केवल वैकल्पिक प्रकार के साथ ही कॉल किया जा सकता है

जहां वैकल्पिक को परिभाषित किया गया है

type Optional<T> = T | undefined

मैं एक फ़ंक्शन f को परिभाषित करना चाहता हूं ताकि

declare type Foo = { foo: string }
declare var x: Optional<Foo>
declare var y: Foo

f(x) // ts typecheck ok
f(y) // ts typecheck ko 
0
Pierre 16 पद 2019, 17:45

1 उत्तर

सबसे बढ़िया उत्तर

जहाँ तक मैं बता सकता हूँ यह काम करता है:

declare function f<T>(v:Optional<T> extends T ? T : never) : any;

खेल का मैदान यहाँ

0
artcorpse 16 पद 2019, 18:08