मेरे पास एक फ़ंक्शन ए है जो फ़ंक्शन बी लौटाएगा। फ़ंक्शन बी का परम ऑब्जेक्ट सी है। सी में डी नामक एक संपत्ति है जिसका प्रकार टी है।

जब मैं बी प्राप्त करता हूं तो टी तय होता है जिसका अर्थ है कि जब मैं ए या किसी अन्य तरीके से कॉल करता हूं तो मैं टी सेट कर सकता हूं।

तो इसे टाइपस्क्रिप्ट में कैसे परिभाषित करें? बहुत बहुत धन्यवाद।


मैंने यह कोशिश की है जो काम करेगा। लेकिन मैं यही नहीं चाहता:

interface C<T> {
    d: T;
    e: number;
}

interface B<T> {
    (param: C<T>): void;
}

interface A<T> {
    (): B<T>;
}

const a: A<number> = () => ({d, e}) => {
    console.log(d, e)
};

चीजें जो मुझे चाहिए शायद कुछ इस तरह:

const a: A = () => ({d, e}) => {
    console.log(d, e)
};
const b1 = a<number>();
const b2 = a<string>();

मुझे इस बारे में कोई जानकारी नहीं है।

1
PoppinL 31 मार्च 2020, 17:42

1 उत्तर

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

आप सही रास्ते पर हैं, मुझे यह इंटरफेस के बजाय प्रकारों के साथ क्लीनर लगता है:

interface C<T> {
    d: T;
    e: number;
}

type B<T> = (params: C<T>) => void

type A = <T>() => B<T>

// or inlined : type A = <T>() => (params: C<T>) => void

const a: A = () => ({d, e}) => {
    console.log(d, e)
};

const withNumber = a<number>();
const withString = a<string>();
2
JeromeBu 31 मार्च 2020, 15:50