Pycharm mypy是否可以检测坏类型Ddict返回类型?

Pycharm mypy是否可以检测坏类型Ddict返回类型?,pycharm,static-analysis,mypy,python-3.8,Pycharm,Static Analysis,Mypy,Python 3.8,我正试图让mypy为我的项目全面地工作 from typing import TypedDict OurDict = TypedDict('OurDict', {'x': int}) bad: OurDict = {'y': 2} # mypy successfully marks wrong good: OurDict = {'x': 2} # mypy likes this def get_bad() -> OurDict: return 234 # mypy s

我正试图让mypy为我的项目全面地工作

from typing import TypedDict

OurDict = TypedDict('OurDict', {'x': int})

bad: OurDict = {'y': 2}  # mypy successfully marks wrong
good: OurDict = {'x': 2}  # mypy likes this


def get_bad() -> OurDict:
    return 234  # mypy successfully marks wrong


def get_good() -> OurDict:
    res = {'x': 2}
    return res  # mypy successfully marks correct


def get_should_be_bad() -> OurDict:
    return {'hello': 2, 'world': 1}  # mypy fails to see a problem

mypy似乎可以在内联声明时检测字典是否符合类型定义,但在检查函数返回值时,它只检查返回值是否是某种字典,而不是所需的类型。这只是设计中的一个限制,还是我做错了什么?

事实证明,mypy检测到这一点没有问题,但我错误地认为在venv中键入调用mypy会在venv中使用mypy。我必须键入python3-m mypy才能运行正确的可执行文件。

事实证明,mypy检测到这一点没有问题,但我错误地认为从venv中键入调用mypy会在venv中使用mypy。我必须键入python3-m mypy才能运行正确的可执行文件。

使用python3.8和
mypy==0.761
,我得到了
错误:在
get>的主体中,TypedDict“OurDict”
的额外键('hello',world')。谢谢,这是一个版本控制问题。我在Python3.8VenV中运行mypy,我假设它会在venv中使用mypy,但结果证明它使用的是系统mypy。当我输入python-mypy时,它工作正常。我应该删除这篇文章吗?使用Python 3.8和
mypy==0.761
,我得到
错误:在
get\u应该是bad
的主体中,TypedDict“OurDict”的额外键('hello','world')。谢谢,这是一个版本控制问题。我在Python3.8VenV中运行mypy,我假设它会在venv中使用mypy,但结果证明它使用的是系统mypy。当我输入python-mypy时,它工作正常。我应该删除这个帖子吗?