File: substitutionTypesInIndexedAccessTypes.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (46 lines) | stat: -rw-r--r-- 1,302 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
=== tests/cases/compiler/substitutionTypesInIndexedAccessTypes.ts ===
// Repro from #31086

type UserArgs = {
>UserArgs : { select?: boolean | undefined; }

  select?: boolean
>select : boolean | undefined

};

type Subset<T, U> = { [key in keyof T]: key extends keyof U ? T[key] : never };
>Subset : Subset<T, U>

declare function withBoundary<T extends UserArgs>(args?: Subset<T, UserArgs>): T;
>withBoundary : <T extends UserArgs>(args?: Subset<T, UserArgs>) => T
>args : Subset<T, UserArgs> | undefined

declare function withoutBoundary<T extends UserArgs>(args?: T): T;
>withoutBoundary : <T extends UserArgs>(args?: T) => T
>args : T | undefined

const boundaryResult = withBoundary({
>boundaryResult : { select: true; }
>withBoundary({  select: true,}) : { select: true; }
>withBoundary : <T extends UserArgs>(args?: Subset<T, UserArgs> | undefined) => T
>{  select: true,} : { select: true; }

  select: true,
>select : true
>true : true

});

const withoutBoundaryResult = withoutBoundary({
>withoutBoundaryResult : { select: true; }
>withoutBoundary({  select: true,}) : { select: true; }
>withoutBoundary : <T extends UserArgs>(args?: T | undefined) => T
>{  select: true,} : { select: true; }

  select: true,
>select : true
>true : true

});