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
|
//// [noCrashOnThisTypeUsage.ts]
interface IListenable {
changeListeners: Function[] | null
observe(handler: (change: any, oldValue?: any) => void, fireImmediately?: boolean): void
}
function notifyListeners<T>(listenable: IListenable, change: T) {
}
export class ObservableValue<T> {
constructor(
public value: T
) {
const newValue: T = value;
const oldValue: any = null;
notifyListeners(this, {
type: "update",
object: this,
newValue,
oldValue
});
}
changeListeners: Function[] | null = [];
observe(handler: (change: any, oldValue?: any) => void, fireImmediately?: boolean) {}
}
//// [noCrashOnThisTypeUsage.js]
"use strict";
exports.__esModule = true;
function notifyListeners(listenable, change) {
}
var ObservableValue = /** @class */ (function () {
function ObservableValue(value) {
this.value = value;
this.changeListeners = [];
var newValue = value;
var oldValue = null;
notifyListeners(this, {
type: "update",
object: this,
newValue: newValue,
oldValue: oldValue
});
}
ObservableValue.prototype.observe = function (handler, fireImmediately) { };
return ObservableValue;
}());
exports.ObservableValue = ObservableValue;
|