Skip to content

Various dict forms and subtypes not accepted as TypedDict #12081

@KotlinIsland

Description

@KotlinIsland
from typing import TypedDict
from collections import defaultdict, OrderedDict, UserDict
class Movie(TypedDict):
    name: str
    year: int

movie_literal: Movie = {"name": "asdf", "year": 2}
movie_dict_kw: Movie = dict(name="asdf", year=2)
movie_dict_literal: Movie = dict({"name":"asdf", "year":2})  # expression has type "Dict[str, object]"
movie_defaultdict_kw: Movie = defaultdict(name="asdf", year=2)  # expression has type "defaultdict[<nothing>, object]"
movie_defaultdict_literal: Movie = defaultdict(str, {"name": "asdf", "year": 2})  # expression has type "defaultdict[str, object]"
movie_defaultdict_dict_kw: Movie = defaultdict(str, dict(name="asdf", year=2))  # expression has type "defaultdict[str, object]"
movie_userdict_literal: Movie = UserDict({"name": "asdf", "year": 2})  # expression has type "UserDict[str, object]"
movie_ordereddict_literal: Movie = OrderedDict({"name": "asdf", "year": 2})  # expression has type "OrderedDict[str, object]"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions