File: narrowingRestGenericCall.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (42 lines) | stat: -rw-r--r-- 959 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
=== tests/cases/compiler/narrowingRestGenericCall.ts ===
interface Slugs {
  foo: string;
>foo : string

  bar: string;
>bar : string
}

function call<T extends object>(obj: T, cb: (val: T) => void) {
>call : <T extends object>(obj: T, cb: (val: T) => void) => void
>obj : T
>cb : (val: T) => void
>val : T

  cb(obj);
>cb(obj) : void
>cb : (val: T) => void
>obj : T
}

declare let obj: Slugs;
>obj : Slugs

call(obj, ({foo, ...rest}) => {
>call(obj, ({foo, ...rest}) => {  console.log(rest.bar);}) : void
>call : <T extends object>(obj: T, cb: (val: T) => void) => void
>obj : Slugs
>({foo, ...rest}) => {  console.log(rest.bar);} : ({ foo, ...rest }: Slugs) => void
>foo : string
>rest : { bar: string; }

  console.log(rest.bar);
>console.log(rest.bar) : void
>console.log : (...data: any[]) => void
>console : Console
>log : (...data: any[]) => void
>rest.bar : string
>rest : { bar: string; }
>bar : string

});