|
|
|
|
|
by pseudalopex
2714 days ago
|
|
Python's type annotation syntax is mostly similar to TypeScript. Each method is independent unless the class is a Generic[T]. You can define a recursive type by quoting the nested reference. You can define a JSON type with recursive types. You can create stubs. Some are in typeshed.[1] Mypy recently added protocols to simplify defining callable types. Python has always been slow to add new syntax. I think that's a good thing overall. [1] https://github.com/python/typeshed/ |
|
No, that’s not sufficient, or at least it wasn’t. The problem wasn’t symbol resolution, but Mypy actually gave you a recursion error. At one time they were intending to fix it by implementing protocols which hadn’t landed last I checked.
> You can create stubs. Some are in typeshed.
You can, but not for magical libraries like SQLAlchemy.
> Python has always been slow to add new syntax. I think that's a good thing overall.
Probably, but it’s hindering their typing story. Typescript solves the problem by building a syntax that compiled to JS, but Python has some syntax support but lots of things are shoehorned in.