From 9475bf7d9e811f0dd05e91f28f321b90a4b3d3a2 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Wed, 3 Apr 2019 11:19:23 -0700 Subject: [PATCH] Fall back from globalReadonlyArrayType to globalArrayType when transpiling --- src/compiler/checker.ts | 2 +- src/testRunner/unittests/services/transpile.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b9e5bcaeddf..3eff7a33747 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -30307,7 +30307,7 @@ namespace ts { autoArrayType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); } - globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray" as __String, /*arity*/ 1); + globalReadonlyArrayType = getGlobalTypeOrUndefined("ReadonlyArray" as __String, /*arity*/ 1) || globalArrayType; anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType; globalThisType = getGlobalTypeOrUndefined("ThisType" as __String, /*arity*/ 1); diff --git a/src/testRunner/unittests/services/transpile.ts b/src/testRunner/unittests/services/transpile.ts index d197d6db621..8429179ffa3 100644 --- a/src/testRunner/unittests/services/transpile.ts +++ b/src/testRunner/unittests/services/transpile.ts @@ -445,5 +445,13 @@ var x = 0;`, { } } }); + + transpilesCorrectly("Supports readonly keyword for arrays", "let x: readonly string[];", { + options: { compilerOptions: { module: ModuleKind.CommonJS } } + }); + + transpilesCorrectly("Supports 'as const' arrays", `([] as const).forEach(k => console.log(k));`, { + options: { compilerOptions: { module: ModuleKind.CommonJS } } + }); }); }