aboutsummaryrefslogtreecommitdiff
path: root/src/fields/Document.ts
diff options
context:
space:
mode:
authorHannah Chow <hannah_chow@brown.edu>2019-03-07 01:11:32 -0500
committerHannah Chow <hannah_chow@brown.edu>2019-03-07 01:11:32 -0500
commit2a7ecc8e179a8020c291da9ed84c877402dbd2f9 (patch)
treeaf4bab97b23d43611a08412e4a20310530cd1248 /src/fields/Document.ts
parentd3ae5b8273a7aecabc36631b11efed4f634878f2 (diff)
delete working
Diffstat (limited to 'src/fields/Document.ts')
-rw-r--r--src/fields/Document.ts8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/fields/Document.ts b/src/fields/Document.ts
index 2e873439c..25e239417 100644
--- a/src/fields/Document.ts
+++ b/src/fields/Document.ts
@@ -1,6 +1,6 @@
import { Key } from "./Key"
import { KeyStore } from "./KeyStore";
-import { Field, Cast, FieldWaiting, FieldValue, FieldId } from "./Field"
+import { Field, Cast, FieldWaiting, FieldValue, FieldId, Opt } from "./Field"
import { NumberField } from "./NumberField";
import { ObservableMap, computed, action } from "mobx";
import { TextField } from "./TextField";
@@ -128,6 +128,12 @@ export class Document extends Field {
return false;
}
+ GetTAsync<T extends Field>(key: Key, ctor: { new(): T }, callback: (field: Opt<T>) => void): boolean {
+ return this.GetAsync(key, (field) => {
+ callback(Cast(field, ctor));
+ })
+ }
+
/**
* Same as {@link Document#GetAsync}, except a field of the given type
* will be created if there is no field associated with the given key,