microsoft / microsoft/TypeScript

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

Ouverte
#43,244 1 commentaire 5 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Awaiting More Feedback Suggestion
Langage dominant
Go
Étoiles
111k
Forks
14.3k
Merge moyen
2 j 4 h
PR mergées (30 j)
132

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par la déclaration de la bibliothèque standard pour Array.prototype.unshift identifiée par l’issue et examinez les conventions des surcharges voisines. Vérifiez les tests de vérification des types existants pour les méthodes des tableaux ; le travail est terminé lorsqu’un appel direct sans argument est signalé, tandis que l’utilisation du spread avec un autre tableau reste valide.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript
Domaine
compilers
Type d'issue
Fonctionnalité
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.