microsoft / microsoft/TypeScript
Add overload to `unshift` to catch calling it with zero elements
Personne n'a encore pris cette issue.
- 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
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- 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