File: inferentialTypingWithObjectLiteralProperties.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 (45 lines) | stat: -rw-r--r-- 1,115 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
=== tests/cases/compiler/inferentialTypingWithObjectLiteralProperties.ts ===
function f<T>(x: T, y: T): T {
>f : <T>(x: T, y: T) => T
>x : T
>y : T

return x;
>x : T
}
f({ x: [null] }, { x: [1] }).x[0] = "" // ok
>f({ x: [null] }, { x: [1] }).x[0] = "" : ""
>f({ x: [null] }, { x: [1] }).x[0] : number
>f({ x: [null] }, { x: [1] }).x : number[]
>f({ x: [null] }, { x: [1] }) : { x: number[]; }
>f : <T>(x: T, y: T) => T
>{ x: [null] } : { x: null[]; }
>x : null[]
>[null] : null[]
>null : null
>{ x: [1] } : { x: number[]; }
>x : number[]
>[1] : number[]
>1 : 1
>x : number[]
>0 : 0
>"" : ""

f({ x: [1] }, { x: [null] }).x[0] = "" // was error TS2011: Cannot convert 'string' to 'number'.
>f({ x: [1] }, { x: [null] }).x[0] = "" : ""
>f({ x: [1] }, { x: [null] }).x[0] : number
>f({ x: [1] }, { x: [null] }).x : number[]
>f({ x: [1] }, { x: [null] }) : { x: number[]; }
>f : <T>(x: T, y: T) => T
>{ x: [1] } : { x: number[]; }
>x : number[]
>[1] : number[]
>1 : 1
>{ x: [null] } : { x: null[]; }
>x : null[]
>[null] : null[]
>null : null
>x : number[]
>0 : 0
>"" : ""