diff --git a/mypy/checkexpr.py b/mypy/checkexpr.py index b8f9bf087467..8433a9cee6df 100644 --- a/mypy/checkexpr.py +++ b/mypy/checkexpr.py @@ -4622,8 +4622,8 @@ def union_tuple_fallback_item(self, left_type: TupleType) -> Type: def visit_typeddict_index_expr( self, td_type: TypedDictType, index: Expression, setitem: bool = False ) -> tuple[Type, set[str]]: - if isinstance(index, StrExpr): - key_names = [index.value] + if isinstance(folded_index := constant_fold_expr(index, "unused"), str): + key_names = [folded_index] else: typ = get_proper_type(self.accept(index)) if isinstance(typ, UnionType):