PyCharm中TypedDict返回值错误无类型提示是否正常?
TypedDict类型提示差异问题解答
这种情况是正常的,原因和类型检查器的工作机制有关:
- 直接变量赋值场景:类型检查器会直接将右侧的字面量字典与
TestTypedDict的定义做实时结构对比,发现键名完全不匹配,所以立刻高亮错误。 - 函数返回值场景:多数类型检查器对函数返回值的校验默认不会做那么深入的字面量结构分析。它只会校验返回值的“类型归属”,而不会自动拆解字典字面量的键值对去匹配TypedDict的具体定义——除非你开启了更严格的检查规则。
如果想要函数返回时也能检测到这类错误,可以这么做:
- 给类型检查工具开启严格模式,比如用mypy时加上
--strict参数,或者在IDE(如PyCharm)的设置里调高类型检查的严格程度; - 显式标注返回字典的类型,比如把返回语句改成:
return Test({'no type hint': 88})
这样检查器会直接验证这个字典是否符合Test的结构,立刻抛出错误。
内容的提问来源于stack exchange,提问作者Bart
相关产品推荐
相关产品推荐

