From 97fb23b5198271c7c2140d42110c0f2016d700a6 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 19 Jul 2017 16:18:07 -1000 Subject: [PATCH] Make 'keyof readonly T' be the same as 'keyof T' --- src/compiler/checker.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2bd24d25f30..e01e703104a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7530,6 +7530,9 @@ namespace ts { } function getIndexType(type: Type): Type { + if (type.flags & TypeFlags.Readonly || getObjectFlags(type) & ObjectFlags.Readonly) { + type = (type).type; + } return maybeTypeOfKind(type, TypeFlags.TypeVariable) ? getIndexTypeForGenericType(type) : getObjectFlags(type) & ObjectFlags.Mapped ? getConstraintTypeFromMappedType(type) : type.flags & TypeFlags.Any || getIndexInfoOfType(type, IndexKind.String) ? stringType :