
**Enhancement Proposal** I propose adding `TypeAlias[T]` as a valid type. This is *in addition to* the plain `typeAlias` in PEP 613. It can be used as `MyType: TypeAlias[T]` (no assignment) instead of `MyType: TypeAlias = T` or `MyType: TypeAlias = "T"` This was a rejected alternative syntax in PEP 613, saying that it looks like an uninitialized variable, as though "alternative" meant "instead of `MyType: TypeAlias = T`. I am saying that **both** forms are allowed. And with my proposal, `MyType` *is* in fact an unitialized variable. I further propose that `TypeAlias` should be considered as `Final`. The program should have no other assignments to the variable in the assignment form, or no assignments at all in the non-assignment form. The advantages are: 1. It is faster, as there is no assignment at runtime. Only the entry in __annotations__["MyType"]. 2. `T` can be a forward reference, without quotes, when using future annotations import. 3. It could be used in a function scope, possibly. I don't understand why `MyType: TypeAlias = T` was not allowed in a function. The objection might possibly not apply to `MyType: TypeAlias[T]`. Additional requirements for a type checker: The type checker treats a `MyType: TypeAlias[T]` statement as exactly equivalent to `MyType: TypeAlias = "T"`. That is, `MyType` is an alias for the type `"T"`.