瀏覽代碼

fix modeldb for TS 2.4

S. Chris Colbert 7 年之前
父節點
當前提交
36a763c521
共有 2 個文件被更改,包括 7 次插入7 次删除
  1. 3 3
      packages/coreutils/src/modeldb.ts
  2. 4 4
      packages/coreutils/src/undoablelist.ts

+ 3 - 3
packages/coreutils/src/modeldb.ts

@@ -339,7 +339,7 @@ class ObservableValue implements IObservableValue {
   }
 
   private _value: JSONValue = null;
-  private _changed = new Signal<ObservableValue, ObservableValue.IChangedArgs>(this);
+  private _changed = new Signal<this, ObservableValue.IChangedArgs>(this);
   private _isDisposed = false;
 }
 
@@ -466,8 +466,8 @@ class ModelDB implements IModelDB {
    * The list can only store objects that are simple
    * JSON Objects and primitives.
    */
-  createList(path: string): IObservableUndoableList<JSONValue> {
-    let vec = new ObservableUndoableList<JSONValue>(
+  createList<T extends JSONValue>(path: string): IObservableUndoableList<T> {
+    let vec = new ObservableUndoableList<T>(
       new ObservableUndoableList.IdentitySerializer());
     this._disposables.add(vec);
     this.set(path, vec);

+ 4 - 4
packages/coreutils/src/undoablelist.ts

@@ -306,19 +306,19 @@ namespace ObservableUndoableList {
    * A default, identity serializer.
    */
   export
-  class IdentitySerializer implements ISerializer<JSONValue> {
+  class IdentitySerializer<T extends JSONValue> implements ISerializer<T> {
     /**
      * Identity serialize.
      */
-    toJSON(value: JSONValue): JSONValue {
+    toJSON(value: T): JSONValue {
       return value;
     }
 
     /**
      * Identity deserialize.
      */
-    fromJSON(value: JSONValue): JSONValue {
-      return value;
+    fromJSON(value: JSONValue): T {
+      return value as T;
     }
   }
 }