-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Open
Labels
Domain: Error MessagesThe issue relates to error messagingThe issue relates to error messagingHelp WantedYou can do thisYou can do thisPossible ImprovementThe current behavior isn't wrong, but it's possible to see that it might be better in some casesThe current behavior isn't wrong, but it's possible to see that it might be better in some cases
Milestone
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
Metadata
Metadata
Assignees
Labels
Domain: Error MessagesThe issue relates to error messagingThe issue relates to error messagingHelp WantedYou can do thisYou can do thisPossible ImprovementThe current behavior isn't wrong, but it's possible to see that it might be better in some casesThe current behavior isn't wrong, but it's possible to see that it might be better in some cases