File: contextualTupleTypeParameterReadonly.types

package info (click to toggle)
node-typescript 5.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 497,488 kB
  • sloc: javascript: 2,107,274; makefile: 6; sh: 1
file content (67 lines) | stat: -rw-r--r-- 1,995 bytes parent folder | download
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//// [tests/cases/compiler/contextualTupleTypeParameterReadonly.ts] ////

=== contextualTupleTypeParameterReadonly.ts ===
declare function each<T extends ReadonlyArray<any>>(cases: ReadonlyArray<T>): (fn: (...args: T) => any) => void;
>each : <T extends readonly any[]>(cases: ReadonlyArray<T>) => (fn: (...args: T) => any) => void
>cases : readonly T[]
>fn : (...args: T) => any
>args : T

const cases = [
>cases : readonly [readonly [1, "1"], readonly [2, "2"]]
>[    [1, '1'],    [2, '2'],] as const : readonly [readonly [1, "1"], readonly [2, "2"]]
>[    [1, '1'],    [2, '2'],] : readonly [readonly [1, "1"], readonly [2, "2"]]

    [1, '1'],
>[1, '1'] : readonly [1, "1"]
>1 : 1
>'1' : "1"

    [2, '2'],
>[2, '2'] : readonly [2, "2"]
>2 : 2
>'2' : "2"

] as const;

const eacher = each(cases);
>eacher : (fn: (...args: readonly [1, "1"] | readonly [2, "2"]) => any) => void
>each(cases) : (fn: (...args: readonly [1, "1"] | readonly [2, "2"]) => any) => void
>each : <T extends readonly any[]>(cases: readonly T[]) => (fn: (...args: T) => any) => void
>cases : readonly [readonly [1, "1"], readonly [2, "2"]]

eacher((a, b) => {
>eacher((a, b) => {    a;    b;}) : void
>eacher : (fn: (...args: readonly [1, "1"] | readonly [2, "2"]) => any) => void
>(a, b) => {    a;    b;} : (a: 1 | 2, b: "1" | "2") => void
>a : 1 | 2
>b : "1" | "2"

    a;
>a : 1 | 2

    b;
>b : "1" | "2"

});

// TODO: https://github.com/microsoft/TypeScript/issues/53255
eacher((...args) => {
>eacher((...args) => {    const [a, b] = args;    a;    b;}) : void
>eacher : (fn: (...args: readonly [1, "1"] | readonly [2, "2"]) => any) => void
>(...args) => {    const [a, b] = args;    a;    b;} : (...args: readonly [1, "1"] | readonly [2, "2"]) => void
>args : readonly [1, "1"] | readonly [2, "2"]

    const [a, b] = args;
>a : 1 | 2
>b : "1" | "2"
>args : readonly [1, "1"] | readonly [2, "2"]

    a;
>a : 1 | 2

    b;
>b : "1" | "2"

});