Skip to content

Commit 0318886

Browse files
committed
add an extra test case
1 parent b55610e commit 0318886

3 files changed

+69
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//// [tests/cases/compiler/mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts] ////
2+
3+
=== mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts ===
4+
// https://github.com/microsoft/TypeScript/pull/55774#issuecomment-1813484949
5+
6+
type Mapper<T> = {
7+
>Mapper : Symbol(Mapper, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 0, 0))
8+
>T : Symbol(T, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 2, 12))
9+
10+
[K in keyof T as K]: T[K] extends NonNullable<T[K]> ? T[K] : never;
11+
>K : Symbol(K, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 3, 3))
12+
>T : Symbol(T, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 2, 12))
13+
>K : Symbol(K, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 3, 3))
14+
>T : Symbol(T, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 2, 12))
15+
>K : Symbol(K, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 3, 3))
16+
>NonNullable : Symbol(NonNullable, Decl(lib.es5.d.ts, --, --))
17+
>T : Symbol(T, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 2, 12))
18+
>K : Symbol(K, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 3, 3))
19+
>T : Symbol(T, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 2, 12))
20+
>K : Symbol(K, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 3, 3))
21+
22+
};
23+
24+
type Mapped = Mapper<[1, 2]>;
25+
>Mapped : Symbol(Mapped, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 4, 2))
26+
>Mapper : Symbol(Mapper, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 0, 0))
27+
28+
type Keys = keyof Mapper<[1, 2]>;
29+
>Keys : Symbol(Keys, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 6, 29))
30+
>Mapper : Symbol(Mapper, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 0, 0))
31+
32+
type SomeType = Mapped[Keys]; // ok
33+
>SomeType : Symbol(SomeType, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 7, 33))
34+
>Mapped : Symbol(Mapped, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 4, 2))
35+
>Keys : Symbol(Keys, Decl(mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts, 6, 29))
36+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//// [tests/cases/compiler/mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts] ////
2+
3+
=== mappedTypeHomomorphicTupleInstantiationNameTypeKeys.ts ===
4+
// https://github.com/microsoft/TypeScript/pull/55774#issuecomment-1813484949
5+
6+
type Mapper<T> = {
7+
>Mapper : Mapper<T>
8+
9+
[K in keyof T as K]: T[K] extends NonNullable<T[K]> ? T[K] : never;
10+
};
11+
12+
type Mapped = Mapper<[1, 2]>;
13+
>Mapped : Mapper<[1, 2]>
14+
15+
type Keys = keyof Mapper<[1, 2]>;
16+
>Keys : "0" | "1"
17+
18+
type SomeType = Mapped[Keys]; // ok
19+
>SomeType : 2 | 1
20+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// @strict: true
2+
// @noEmit: true
3+
4+
// https://github.com/microsoft/TypeScript/pull/55774#issuecomment-1813484949
5+
6+
type Mapper<T> = {
7+
[K in keyof T as K]: T[K] extends NonNullable<T[K]> ? T[K] : never;
8+
};
9+
10+
type Mapped = Mapper<[1, 2]>;
11+
type Keys = keyof Mapper<[1, 2]>;
12+
13+
type SomeType = Mapped[Keys]; // ok

0 commit comments

Comments
 (0)