Ejemplo n.º 1
1
// promised value mismatch
let promiseStr: Promise<string> = voidListeners.promise();
let promiseEv: Promise<MyFooEvent> = voidListeners.promise();

// ChangeListeners

interface ChangeEventTarget {
  prop: number
}

new ChangeListeners();
new ChangeListeners<ChangeEventTarget>();
new ChangeListeners<ChangeEventTarget, 'notaprop'>();
new ChangeListeners<ChangeEventTarget, 'prop'>({prop: '23'}, 'notaprop');
let myChangeListeners  = new ChangeListeners<ChangeEventTarget, 'prop'>({prop: 23}, 'prop');
myChangeListeners.trigger({notvalue: 23});
myChangeListeners.trigger({value: '23'});

/*Expected
(24,
(25,
(27,

(34,
(35,
(36,
(37,
(38,
(39,
(40,
Ejemplo n.º 2
0
let type = 'myEventType';
let target: object = {};
let customTarget: {targetType: boolean} = {targetType: true};
let fooTarget: FooTarget = {targetType: 'foo', prop: 'bar'};
let ev: CustomEvent = {} as any;

const myEventListeners: Listeners<MyEvent> = new Listeners(customTarget, type);
const myFooListeners: Listeners<MyFooEvent> = new Listeners(fooTarget, type);
const targetCompatible: Listeners<MyEvent> = new Listeners(fooTarget , type);
const myExtendedEventListeners: Listeners<MyExtendedEvent> = new Listeners(fooTarget, type);
const listener: () => void = function() {};
const myEventListener: (ev: MyEvent) => void = function() {};
const myChangeEventListener: (ev: PropertyChangedEvent<FooTarget, string>) => void = function() {};
const myFooListener: (ev: MyFooEvent) => void = function() {};
const myExtendedEventListener: (ev: MyExtendedEvent) => void = function() {};
const myChangeListeners: ChangeListeners<FooTarget, 'prop'> = new ChangeListeners(fooTarget, 'prop');

// target and type
target = myEventListeners.target;
fooTarget = myFooListeners.target;
fooTarget = myChangeListeners.target;
fooTarget = myExtendedEventListeners.target;
fooTarget = myFooListeners(listener);
fooTarget = myFooListeners.once(listener);
fooTarget = myFooListeners.addListener(listener);
fooTarget = myFooListeners.removeListener(listener);
fooTarget = myFooListeners.trigger();
type = myEventListeners.type;
type = myFooListeners.type;
type = myChangeListeners.type;