const defers the decision, it does not lock it
The common read: A const holding a literal has that literal as its type, so the annotation on the second one is documentation and changes nothing.
An unannotated const gets a widening literal type, and the word doing the work is "widening". The release note that introduced the behaviour names both halves in the same breath: "when an expression of a literal type is inferred for a const location without a type annotation, that const variable gets a widening literal type inferred", and "when a const location has an explicit literal type annotation, the const variable gets a non-widening literal type".
So the annotation is not a restatement of what inference already produced, it is the removal of a permission that inference attached, and the two declarations differ in exactly one thing that no editor tooltip on the declaration line will show you.
Widening then propagates through a union without any of the members surviving individually: nightly ? 1 : "unlimited" is inferred as 1 | "unlimited" on a const and as string | number the moment it is read into a let, which is the same rule applied member by member and is not, as it looks, a separate ability to collapse unions.
This is the beat behind the review comment that reads "why did you annotate that, it is already a const", which is correct about the value, wrong about the type, and cheap to say.
