File: controlFlowCommaExpressionFunctionCall.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 459,116 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (33 lines) | stat: -rw-r--r-- 867 bytes parent folder | download | duplicates (4)
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
=== tests/cases/compiler/controlFlowCommaExpressionFunctionCall.ts ===
const otherValue = () => true;
>otherValue : () => boolean
>() => true : () => boolean
>true : true

const value : number | string = null as any;
>value : string | number
>null as any : any
>null : null

function isNumber(obj: any): obj is number {
>isNumber : (obj: any) => obj is number
>obj : any

    return true; // method implementation irrelevant
>true : true
}

// Bad case - fails
if (isNumber((otherValue(), value))) {
>isNumber((otherValue(), value)) : boolean
>isNumber : (obj: any) => obj is number
>(otherValue(), value) : string | number
>otherValue(), value : string | number
>otherValue() : boolean
>otherValue : () => boolean
>value : string | number

    const b = value; // string | number , but should be number
>b : number
>value : number
}