microsoft / microsoft/TypeScript
Cannot use `override` keyword to override methods of `Object` without explicitly extending `Object`
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
Bug Report
🔎 Search Terms
override, TS4112
🕗 Version & Regression Information
It happens in 4.4.2 and has been there since the introduction of override keyword (#39669).
⏯ Playground Link
💻 Code
class A {
override toString() { return 'foo'; }
}
🙁 Actual behavior
TS4112: This member cannot have an 'override' modifier because its containing class 'A' does not extend another class.
🙂 Expected behavior
It should be allowed, since the method overrides Object.prototype.toString.
Per ECMAScript spec §15.7.12.7, a class without an explicit extends clause would be implicitly inheriting from Object. Therefore, such classes should be allowed to explicitly override methods declared in Object.
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
Reproduisez le cas dans le TypeScript Playground lié et examinez la déclaration de Object dans lib/lib.es5.d.ts. Suivez le comportement de vérification de override pour une classe sans clause extends explicite. C’est terminé lorsque l’exemple est accepté, tout en maintenant les vérifications de override pour les autres cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100