Strongly type TaxReturn.getForm{,s}()
authorRobert Sesek <rsesek@bluestatic.org>
Thu, 20 Feb 2020 05:08:57 +0000 (00:08 -0500)
committerRobert Sesek <rsesek@bluestatic.org>
Thu, 20 Feb 2020 05:09:19 +0000 (00:09 -0500)
src/TaxReturn.ts

index 940c965d18dcfa24af201a04a7af170585b5fb8f..23a00ad2fbd24b01a50984dae2ccabef0051275d 100644 (file)
@@ -47,8 +47,8 @@ export default class TaxReturn {
     this._forms.push(form);
   }
 
-  getForm(name: string): Form {
-    const forms = this.getForms(name);
+  getForm<T extends Form>(name: string): T {
+    const forms = this.getForms<T>(name);
     if (forms.length == 0) {
       throw new NotFoundError(`No form named ${name}`);
     }
@@ -58,7 +58,7 @@ export default class TaxReturn {
     return forms[0];
   }
 
-  getForms(name: string): Form[] {
-    return this._forms.filter(f => f.name == name);
+  getForms<T extends Form>(name: string): T[] {
+    return this._forms.filter(f => f.name == name) as T[];
   }
 };