From 596493cce46bd41ad10bb55da5b50e8af680b610 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 17 Aug 2018 10:11:28 -0700 Subject: [PATCH] Add tests --- .../types/mapped/mappedTypesArraysTuples.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts b/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts index 0607462fe04..c936a86c897 100644 --- a/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts +++ b/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts @@ -63,3 +63,25 @@ function f1(a: number, b: Promise, c: string[], d: Promise) { let x3 = all(a, b, c); let x4 = all(a, b, c, d); } + +function f2(a: Boxified) { + let x: Box | undefined = a.pop(); + let y: Box[] = a.concat(a); +} + +// Repro from #26163 + +type ElementType = T extends Array ? U : never; +type Mapped = { [K in keyof T]: T[K] }; + +type F = ElementType>; +type R1 = F<[string, number, boolean]>; // string | number | boolean +type R2 = ElementType>; // string | number | boolean + +// Repro from #26163 + +declare function acceptArray(arr: any[]): void; +declare function mapArray(arr: T): Mapped; +function acceptMappedArray(arr: T) { + acceptArray(mapArray(arr)); +}