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
|