File: symbolProperty61.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 (80 lines) | stat: -rw-r--r-- 2,050 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
=== tests/cases/conformance/es6/Symbols/symbolProperty61.ts ===
declare global {
>global : any

  interface SymbolConstructor {
    readonly obs: symbol
>obs : unique symbol
  }
}

const observable: typeof Symbol.obs = Symbol.obs
>observable : unique symbol
>Symbol.obs : unique symbol
>Symbol : SymbolConstructor
>obs : unique symbol
>Symbol.obs : unique symbol
>Symbol : SymbolConstructor
>obs : unique symbol

export class MyObservable<T> {
>MyObservable : MyObservable<T>

    constructor(private _val: T) {}
>_val : T

    subscribe(next: (val: T) => void) {
>subscribe : (next: (val: T) => void) => void
>next : (val: T) => void
>val : T

        next(this._val)
>next(this._val) : void
>next : (val: T) => void
>this._val : T
>this : this
>_val : T
    }

    [observable]() {
>[observable] : () => this
>observable : unique symbol

        return this
>this : this
    }
}

type InteropObservable<T> = {
>InteropObservable : InteropObservable<T>

    [Symbol.obs]: () => { subscribe(next: (val: T) => void): void }
>[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; }
>Symbol.obs : unique symbol
>Symbol : SymbolConstructor
>obs : unique symbol
>subscribe : (next: (val: T) => void) => void
>next : (val: T) => void
>val : T
}

function from<T>(obs: InteropObservable<T>) {
>from : <T>(obs: InteropObservable<T>) => { subscribe(next: (val: T) => void): void; }
>obs : InteropObservable<T>

    return obs[Symbol.obs]()
>obs[Symbol.obs]() : { subscribe(next: (val: T) => void): void; }
>obs[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; }
>obs : InteropObservable<T>
>Symbol.obs : unique symbol
>Symbol : SymbolConstructor
>obs : unique symbol
}

from(new MyObservable(42))
>from(new MyObservable(42)) : { subscribe(next: (val: number) => void): void; }
>from : <T>(obs: InteropObservable<T>) => { subscribe(next: (val: T) => void): void; }
>new MyObservable(42) : MyObservable<number>
>MyObservable : typeof MyObservable
>42 : 42