diff --git a/util/type.ts b/util/type.ts index 65cb3c1..bbd1ca1 100644 --- a/util/type.ts +++ b/util/type.ts @@ -286,7 +286,10 @@ function isReadonlyPropertyFromMappedType(type: ts.Type, name: ts.__String, chec // well-known symbols are not affected by mapped types if (declaration.readonlyToken !== undefined && !/^__@[^@]+$/.test(name)) return declaration.readonlyToken.kind !== ts.SyntaxKind.MinusToken; - return isPropertyReadonlyInType((<{modifiersType: ts.Type}>type).modifiersType, name, checker); + const modifiersType = (<{ modifiersType: ts.Type }>type).modifiersType; + if (modifiersType === undefined) + return false; + return isPropertyReadonlyInType(modifiersType, name, checker); } export function symbolHasReadonlyDeclaration(symbol: ts.Symbol, checker: ts.TypeChecker) {