mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
import mobservable = require('mobservable');
|
|
import {observable} from "mobservable";
|
|
|
|
var v = mobservable(3);
|
|
v.observe(() => {});
|
|
|
|
var a = mobservable([1, 2, 3]);
|
|
|
|
class Order {
|
|
@observable price: number = 3;
|
|
@observable amount: number = 2;
|
|
@observable orders: string[] = [];
|
|
|
|
@observable get total() {
|
|
return this.amount * this.price * (1 + this.orders.length);
|
|
}
|
|
}
|
|
|
|
export function testObservable() {
|
|
var a = mobservable(3);
|
|
var b = mobservable(() => a() * 2);
|
|
}
|
|
|
|
export function testAnnotations() {
|
|
var order1totals: number[] = [];
|
|
var order1 = new Order();
|
|
var order2 = new Order();
|
|
|
|
var disposer = mobservable.observe(() => {
|
|
order1totals.push(order1.total);
|
|
});
|
|
|
|
order2.price = 4;
|
|
order1.amount = 1;
|
|
|
|
order2.orders.push('bla');
|
|
|
|
order1.orders.splice(0, 0, 'boe', 'hoi');
|
|
|
|
disposer();
|
|
order1.orders.pop();
|
|
};
|
|
|
|
export function testTyping() {
|
|
var ar: mobservable.ObservableArray<number> = mobservable.makeReactive([1, 2]);
|
|
ar.observe((d: mobservable.ArrayChange<number> | mobservable.ArraySplice<number>) => {
|
|
console.log(d.type);
|
|
});
|
|
|
|
var ar2: mobservable.ObservableArray<number> = mobservable([1, 2]);
|
|
ar2.observe((d: mobservable.ArrayChange<number> | mobservable.ArraySplice<number>) => {
|
|
console.log(d.type);
|
|
});
|
|
|
|
var x: mobservable.ObservableValue<number> = mobservable(3);
|
|
} |