File: inferenceUnionOfObjectsMappedContextualType.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (50 lines) | stat: -rw-r--r-- 1,563 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
47
48
49
50
=== tests/cases/compiler/inferenceUnionOfObjectsMappedContextualType.ts ===
type Entity = {
>Entity : { someDate: Date | null; } & ({ id: string; } | { id: number; })

    someDate: Date | null;
>someDate : Date | null
>null : null

} & ({ id: string; } | { id: number; })
>id : string
>id : number

type RowRendererMeta<TInput extends {}> = {
>RowRendererMeta : RowRendererMeta<TInput>

    [key in keyof TInput]: { key: key; caption: string; formatter?: (value: TInput[key]) => string; };
>key : key
>caption : string
>formatter : ((value: TInput[key]) => string) | undefined
>value : TInput[key]
}

type RowRenderer<TInput extends {}> = RowRendererMeta<TInput>[keyof RowRendererMeta<TInput>];
>RowRenderer : RowRenderer<TInput>

const test: RowRenderer<Entity> = {
>test : RowRenderer<Entity>
>{    key: 'someDate',    caption: 'My Date',    formatter: (value) => value ? value.toString() : '-' // value: any} : { key: "someDate"; caption: string; formatter: (value: Date | null) => string; }

    key: 'someDate',
>key : "someDate"
>'someDate' : "someDate"

    caption: 'My Date',
>caption : string
>'My Date' : "My Date"

    formatter: (value) => value ? value.toString() : '-' // value: any
>formatter : (value: Date | null) => string
>(value) => value ? value.toString() : '-' : (value: Date | null) => string
>value : Date | null
>value ? value.toString() : '-' : string
>value : Date | null
>value.toString() : string
>value.toString : () => string
>value : Date
>toString : () => string
>'-' : "-"
}