microsoft / microsoft/TypeScript

Add overload to `unshift` to catch calling it with zero elements

Offen
#43,244 1 Kommentar 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Awaiting More Feedback Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

lib Update Request

I often mistake unshift for shift; calling array.unshift() with zero arguments is almost always a mistake, and I'd like it to tell me that.

interface Array<T> {
    /**
     * @deprecated You probably meant to use `.shift()`
     */
    unshift(): number;
    /**
     * Inserts new elements at the start of an array, and returns the new length of the array.
     * @param items Elements to insert at the start of the array.
     */
    unshift(...items: T[]): number
}

Configuration Check

My compilation target is ESNext and my lib is the default.

Missing / Incorrect Definition

Array.prototype.unshift

Sample Code

const myArray = ["abc"];

// This should error / warn, as this is almost definitely a mistake
myArray.unshift()

// This should be ok even though the array might have zero elements
myArray.unshift(...myOtherArray)

Documentation Link

Not fully relevant: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift

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

Beginne mit der vom Issue identifizierten Standardbibliotheksdeklaration für Array.prototype.unshift und überprüfe die Konventionen für nahegelegene Überladungen. Überprüfe die vorhandenen Typprüfungstests für Array-Methoden; abgeschlossen ist die Aufgabe, wenn ein direkter Aufruf ohne Argumente beanstandet wird, während das Spreaden eines anderen Arrays weiterhin gültig ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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