microsoft / microsoft/TypeScript
Confusing error on computed name class member
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
🔎 Search Terms
late bindable computed symbol class member
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
💻 Code
const uniqueSymbol0 = Symbol.for("");
function getUniqueSymbol0(): typeof uniqueSymbol0 {
return uniqueSymbol0;
}
class Cls3 {
[getUniqueSymbol0()] = "first"; // A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.(1166)
}
🙁 Actual behavior
The error is confusing because this expression has a unique symbol type already
🙂 Expected behavior
This error should mention more accurate late-bindable requirements. From the source code:
/**
* Indicates whether a declaration name is definitely late-bindable.
* A declaration name is only late-bindable if:
* - It is a `ComputedPropertyName`.
* - Its expression is an `Identifier` or either a `PropertyAccessExpression` an
* `ElementAccessExpression` consisting only of these same three types of nodes.
* - The type of its expression is a string or numeric literal type, or is a `unique symbol` type.
*/
Additional information about the issue
No response
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 l’exemple TypeScript Playground lié et le commentaire du code source qui décrit les noms de déclarations pouvant définitivement être liés tardivement. Suivez le diagnostic de la propriété de classe calculée et faites en sorte que sa formulation reflète les exigences indiquées concernant l’expression et le type ; vérifiez que l’exemple signale l’erreur la plus précise.
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
- 35/100