File: objectSpreadStrictNull.symbols

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (144 lines) | stat: -rw-r--r-- 7,874 bytes parent folder | download | duplicates (5)
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
=== tests/cases/conformance/types/spread/objectSpreadStrictNull.ts ===
function f(
>f : Symbol(f, Decl(objectSpreadStrictNull.ts, 0, 0))

    definiteBoolean: { sn: boolean },
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpreadStrictNull.ts, 0, 11))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 1, 22))

    definiteString: { sn: string },
>definiteString : Symbol(definiteString, Decl(objectSpreadStrictNull.ts, 1, 37))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 2, 21))

    optionalString: { sn?: string },
>optionalString : Symbol(optionalString, Decl(objectSpreadStrictNull.ts, 2, 35))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 3, 21))

    optionalNumber: { sn?: number },
>optionalNumber : Symbol(optionalNumber, Decl(objectSpreadStrictNull.ts, 3, 36))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 4, 21))

    undefinedString: { sn: string | undefined },
>undefinedString : Symbol(undefinedString, Decl(objectSpreadStrictNull.ts, 4, 36))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 5, 22))

    undefinedNumber: { sn: number | undefined }) {
>undefinedNumber : Symbol(undefinedNumber, Decl(objectSpreadStrictNull.ts, 5, 48))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 6, 22))

    // optional
    let optionalUnionStops: { sn: string | number } = { ...definiteBoolean, ...definiteString, ...optionalNumber };
>optionalUnionStops : Symbol(optionalUnionStops, Decl(objectSpreadStrictNull.ts, 8, 7))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 8, 29))
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpreadStrictNull.ts, 0, 11))
>definiteString : Symbol(definiteString, Decl(objectSpreadStrictNull.ts, 1, 37))
>optionalNumber : Symbol(optionalNumber, Decl(objectSpreadStrictNull.ts, 3, 36))

    let optionalUnionDuplicates: { sn: string | number } = { ...definiteBoolean, ...definiteString, ...optionalString, ...optionalNumber };
>optionalUnionDuplicates : Symbol(optionalUnionDuplicates, Decl(objectSpreadStrictNull.ts, 9, 7))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 9, 34))
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpreadStrictNull.ts, 0, 11))
>definiteString : Symbol(definiteString, Decl(objectSpreadStrictNull.ts, 1, 37))
>optionalString : Symbol(optionalString, Decl(objectSpreadStrictNull.ts, 2, 35))
>optionalNumber : Symbol(optionalNumber, Decl(objectSpreadStrictNull.ts, 3, 36))

    let allOptional: { sn?: string | number } = { ...optionalString, ...optionalNumber };
>allOptional : Symbol(allOptional, Decl(objectSpreadStrictNull.ts, 10, 7))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 10, 22))
>optionalString : Symbol(optionalString, Decl(objectSpreadStrictNull.ts, 2, 35))
>optionalNumber : Symbol(optionalNumber, Decl(objectSpreadStrictNull.ts, 3, 36))

    // undefined
    let undefinedUnionStops: { sn: string | number } = { ...definiteBoolean, ...definiteString, ...undefinedNumber };
>undefinedUnionStops : Symbol(undefinedUnionStops, Decl(objectSpreadStrictNull.ts, 13, 7))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 13, 30))
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpreadStrictNull.ts, 0, 11))
>definiteString : Symbol(definiteString, Decl(objectSpreadStrictNull.ts, 1, 37))
>undefinedNumber : Symbol(undefinedNumber, Decl(objectSpreadStrictNull.ts, 5, 48))

    let undefinedUnionDuplicates: { sn: string | number } = { ...definiteBoolean, ...definiteString, ...undefinedString, ...undefinedNumber };
>undefinedUnionDuplicates : Symbol(undefinedUnionDuplicates, Decl(objectSpreadStrictNull.ts, 14, 7))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 14, 35))
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpreadStrictNull.ts, 0, 11))
>definiteString : Symbol(definiteString, Decl(objectSpreadStrictNull.ts, 1, 37))
>undefinedString : Symbol(undefinedString, Decl(objectSpreadStrictNull.ts, 4, 36))
>undefinedNumber : Symbol(undefinedNumber, Decl(objectSpreadStrictNull.ts, 5, 48))

    let allUndefined: { sn: string | number | undefined } = { ...undefinedString, ...undefinedNumber };
>allUndefined : Symbol(allUndefined, Decl(objectSpreadStrictNull.ts, 15, 7))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 15, 23))
>undefinedString : Symbol(undefinedString, Decl(objectSpreadStrictNull.ts, 4, 36))
>undefinedNumber : Symbol(undefinedNumber, Decl(objectSpreadStrictNull.ts, 5, 48))

    let undefinedWithOptionalContinues: { sn: string | number | boolean } = { ...definiteBoolean, ...undefinedString, ...optionalNumber };
>undefinedWithOptionalContinues : Symbol(undefinedWithOptionalContinues, Decl(objectSpreadStrictNull.ts, 17, 7))
>sn : Symbol(sn, Decl(objectSpreadStrictNull.ts, 17, 41))
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpreadStrictNull.ts, 0, 11))
>undefinedString : Symbol(undefinedString, Decl(objectSpreadStrictNull.ts, 4, 36))
>optionalNumber : Symbol(optionalNumber, Decl(objectSpreadStrictNull.ts, 3, 36))
}

type Movie = {
>Movie : Symbol(Movie, Decl(objectSpreadStrictNull.ts, 18, 1))

    title: string;
>title : Symbol(title, Decl(objectSpreadStrictNull.ts, 20, 14))

    yearReleased: number;
>yearReleased : Symbol(yearReleased, Decl(objectSpreadStrictNull.ts, 21, 18))
}

const m = { title: "The Matrix", yearReleased: 1999 };
>m : Symbol(m, Decl(objectSpreadStrictNull.ts, 25, 5))
>title : Symbol(title, Decl(objectSpreadStrictNull.ts, 25, 11))
>yearReleased : Symbol(yearReleased, Decl(objectSpreadStrictNull.ts, 25, 32))

// should error here because title: undefined is not assignable to string
const x: Movie = { ...m, title: undefined };
>x : Symbol(x, Decl(objectSpreadStrictNull.ts, 27, 5))
>Movie : Symbol(Movie, Decl(objectSpreadStrictNull.ts, 18, 1))
>m : Symbol(m, Decl(objectSpreadStrictNull.ts, 25, 5))
>title : Symbol(title, Decl(objectSpreadStrictNull.ts, 27, 24))
>undefined : Symbol(undefined)

interface Fields {
>Fields : Symbol(Fields, Decl(objectSpreadStrictNull.ts, 27, 44))

    foo: number;
>foo : Symbol(Fields.foo, Decl(objectSpreadStrictNull.ts, 29, 18))

    bar: string;
>bar : Symbol(Fields.bar, Decl(objectSpreadStrictNull.ts, 30, 16))
}
interface NearlyPartialFields {
>NearlyPartialFields : Symbol(NearlyPartialFields, Decl(objectSpreadStrictNull.ts, 32, 1))

    foo: number | undefined;
>foo : Symbol(NearlyPartialFields.foo, Decl(objectSpreadStrictNull.ts, 33, 31))

    bar: string | undefined;
>bar : Symbol(NearlyPartialFields.bar, Decl(objectSpreadStrictNull.ts, 34, 28))
}
function g(fields: Fields, partialFields: Partial<Fields>, nearlyPartialFields: NearlyPartialFields) {
>g : Symbol(g, Decl(objectSpreadStrictNull.ts, 36, 1))
>fields : Symbol(fields, Decl(objectSpreadStrictNull.ts, 37, 11))
>Fields : Symbol(Fields, Decl(objectSpreadStrictNull.ts, 27, 44))
>partialFields : Symbol(partialFields, Decl(objectSpreadStrictNull.ts, 37, 26))
>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
>Fields : Symbol(Fields, Decl(objectSpreadStrictNull.ts, 27, 44))
>nearlyPartialFields : Symbol(nearlyPartialFields, Decl(objectSpreadStrictNull.ts, 37, 58))
>NearlyPartialFields : Symbol(NearlyPartialFields, Decl(objectSpreadStrictNull.ts, 32, 1))

    // ok, undefined is stripped from optional properties when spread
    fields = { ...fields, ...partialFields };
>fields : Symbol(fields, Decl(objectSpreadStrictNull.ts, 37, 11))
>fields : Symbol(fields, Decl(objectSpreadStrictNull.ts, 37, 11))
>partialFields : Symbol(partialFields, Decl(objectSpreadStrictNull.ts, 37, 26))

    // error: not optional, undefined remains
    fields = { ...fields, ...nearlyPartialFields };
>fields : Symbol(fields, Decl(objectSpreadStrictNull.ts, 37, 11))
>fields : Symbol(fields, Decl(objectSpreadStrictNull.ts, 37, 11))
>nearlyPartialFields : Symbol(nearlyPartialFields, Decl(objectSpreadStrictNull.ts, 37, 58))
}