microsoft / microsoft/TypeScript

Proposal: Spread Interface Operator

Offen
#40,389 4 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Awaiting More Feedback Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.4k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

Suggestion

When we want to extend a interface we use the "extends" keyword. So for example:


interface Foo {
   keyA: string,
   keyB: number,
}

interface ExtendsFoo extends Foo {
    keyC: any
}

My idea is to define the same interface ExtendsFoo but using what I would call the Spread Interface Operator.

The code mentioned above could be rewritten as:


interface Foo {
   keyA: string,
   keyB: number,
}

interface ExtendsFoo {
   ...Foo,
   keyC: any
}

I think this could be another way of expressing types that reminds spread operator syntax in Javascript.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Der Vorschlag betrifft die Vererbung von TypeScript-Interfaces und die JavaScript-Spread-Syntax. Beginne damit zu prüfen, wie die bestehende Syntax für Interfaces und extends spezifiziert und geparst wird, und ermittle anschließend die Design-Auswirkungen der Zulassung von Spread-Membern in Interfaces. Als abgeschlossen gilt die Arbeit, wenn ein akzeptiertes Sprachdesign sowie Implementierungs- und Conformance-Abdeckung vorhanden sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.