मैं टाइपस्क्रिप्ट में एक धाराप्रवाह एपीआई विकसित करने की कोशिश कर रहा हूं, जिसे मैं निम्नानुसार उपयोग करना चाहता हूं:

export interface Person {
    firstName: string;
    lastName: string;
}

new Builder<Person>()
    .func1("stringArg1")
    .func2("firstName")
    .func3("stringArg2");

func2 केवल उन गुणों के नाम स्वीकार कर सकते हैं जो वास्तव में निर्दिष्ट इंटरफ़ेस में होते हैं (यहां: Person)। इसके अलावा, func2 केवल func1 और func3 के वापसी मूल्य पर केवल func2 के वापसी मूल्य पर उपलब्ध होगा। किसी भी मामले में फ़ंक्शन कॉल का क्रम देखा जाना चाहिए। कक्षा Builder को किसी भी समय निर्दिष्ट मानों का मूल्यांकन करने में सक्षम होना चाहिए (stringArg1, firstName और stringArg2)।

मैं सलाह और मदद के लिए बहुत आभारी रहूंगा।

0
Felix 6 अगस्त 2020, 19:40

1 उत्तर

मुझे नहीं पता कि आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं लेकिन यहां आप एक धाराप्रवाह एपीआई का उदाहरण लेते हैं

export interface Person {
  firstName: string;
  lastName: string;
}

class Builder<T> {
  private func1Value?: string;
  private func2Value?: keyof T;
  private func3Value?: string;

  func1(arg: string): this {
    this.func1Value = arg;

    return this;
  }

  func2(key: keyof T): this {
    this.func2Value = key;

    return this;
  }

  func3(arg: string): this {
    this.func3Value = arg;

    return this;
  }
}

new Builder<Person>().func1('stringArg1').func2('firstName').func3('stringArg2');
1
lleon 6 अगस्त 2020, 19:49