File: tsxUnionSpread.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 (64 lines) | stat: -rw-r--r-- 1,657 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
=== tests/cases/compiler/index.tsx ===
namespace JSX {
    export interface Element {}
}

export type CatInfo = { type: 'Cat'; subType: string; };
>CatInfo : { type: 'Cat'; subType: string; }
>type : "Cat"
>subType : string

export type DogInfo = { type: 'Dog'; };
>DogInfo : { type: 'Dog'; }
>type : "Dog"

export type AnimalInfo = CatInfo | DogInfo;
>AnimalInfo : CatInfo | DogInfo

function AnimalComponent(info: AnimalInfo): JSX.Element {
>AnimalComponent : (info: AnimalInfo) => JSX.Element
>info : AnimalInfo
>JSX : any

    return undefined as any;
>undefined as any : any
>undefined : undefined
}

function getProps(): AnimalInfo {
>getProps : () => AnimalInfo

    // this may be from server or whatever ...
    return { type: 'Cat', subType: 'Large' };
>{ type: 'Cat', subType: 'Large' } : { type: "Cat"; subType: string; }
>type : "Cat"
>'Cat' : "Cat"
>subType : string
>'Large' : "Large"
}

var props:AnimalInfo = getProps();
>props : AnimalInfo
>getProps() : AnimalInfo
>getProps : () => AnimalInfo

var component = <AnimalComponent {...props} />
>component : error
><AnimalComponent {...props} /> : error
>AnimalComponent : (info: AnimalInfo) => JSX.Element
>props : AnimalInfo

var props2:AnimalInfo = { type: 'Cat', subType: 'Large' };
>props2 : AnimalInfo
>{ type: 'Cat', subType: 'Large' } : { type: "Cat"; subType: string; }
>type : "Cat"
>'Cat' : "Cat"
>subType : string
>'Large' : "Large"

var component2 = <AnimalComponent {...props2} />
>component2 : error
><AnimalComponent {...props2} /> : error
>AnimalComponent : (info: AnimalInfo) => JSX.Element
>props2 : CatInfo