From 24f76a8a9e868bb39abb4cf170100ca2a86b90d5 Mon Sep 17 00:00:00 2001 From: "francois.grand" <francois.grand@irstea.fr> Date: Thu, 21 Jun 2018 16:03:17 +0200 Subject: [PATCH] #48 ajout fonctions isObservable()/asObservable() --- src/util/observer.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/util/observer.ts b/src/util/observer.ts index 6a17beb9..fea87f9c 100644 --- a/src/util/observer.ts +++ b/src/util/observer.ts @@ -51,3 +51,26 @@ export class Observable implements IObservable { o.update(sender, data); } } + +/** + * @return true si l'objet passé implémente IObservable + * @param o objet à tester + */ +export function isObservable(o: any): boolean { + if (o === undefined) + return false; + + const ob = <IObservable>o; + return typeof ob.addObserver === "function"; +} + +/** + * cast d'un objet implémentant IObservable + * @param o objet à convertir + */ +export function asObservable(o: any): IObservable { + if (isObservable(o)) + return <IObservable>o; + + return undefined; +} -- GitLab