3 ms·
Alas, MyPy doesn't have the concept of "keyof" and mapped types like TypeScript. So in place of that I would: 1. Define a variable called Params = Any; 2. Li
by silviogutierrez 6y ago
Alas, MyPy doesn't have the concept of "keyof" and mapped types like TypeScript.
So in place of that I would:
1. Define a variable called Params = Any;
2. Liberally use Param["foo"] and Param["bar"] anywhere.
3. Once you stabilize, reimplement Params as a TypedDict. You'll get failures if accessing any invalid key.
You can also use a NamedTuple if you prefer.
If you insist passing a param name, then you'll have to create a big list of Literals for param with every key in your dict. So Param = Literal["foo", "bar"] etc.
- _pastel 6y agoThank you! It's surprising that mypy can typecheck based on string keys like that. Cool!