Website-Suche

javascript - Gibt es ein Äquivalent des Spread-Operators in TypeScript zur Verwendung mit Interfaces?


Ich arbeite an einem JavaScript-Projekt und möchte auch TypeScript verwenden. In einem Szenario wäre es schön, wenn ich die Menge an Wiederholungen in dieser Schnittstelle reduzieren könnte:-

interface Question {
  settings: {
    label: string
    description: string
    hidden: boolean
    followUp: {
      label: string
      description: string
      hidden: boolean
    }
  }
}

Wenn es eine Art Spread-Operator gäbe, wäre das großartig:

interface QuestionSettings {
  label: string
  description: string
  hidden: boolean
}

interface Question {
  settings: {
    ...QuestionSettings
    followUp: QuestionSettings
  }
}

Ist das in TypeScript möglich?

Antwort #1

Du könntest Schnittmengentypen verwenden:

interface QuestionSettings {
   label: string;
   description: string;
   hidden: boolean;
}

interface Question {
  settings: QuestionSettings & {
     followUp: QuestionSettings;
  }
}