josdejong/mathjs

TypeScript: inconsistent factory signature (unable to declare custom dependencies)

Open

#2.324 geöffnet am 21. Sept. 2021

Auf GitHub ansehen
 (1 Kommentar) (1 Reaktion) (0 zugewiesene Personen)JavaScript (1.298 Forks)batch import
bughelp wantedtypescript

Repository-Metriken

Stars
 (13.832 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

I'm customizing mathjs extending its types and methods. In JS I can register a type :

  factory('DateTime', ['typed'], function createDateTime({ typed }: { typed?: any }) {
    typed.addType({
      name: 'DateTime',
      test: (x: any) => x && x.constructor.name === 'DateTime'
    })
    return DateTime
  }),

and then use it as a dependency:

factory('datetime', ['typed', 'DateTime'], function createDateTime({ typed, DateTime }) {}

but in TypeScript it's not possible - I'm getting: Type '"DateTime"' is not assignable to type 'keyof MathJsStatic'.

PS> And BTW creating math object is also quite confusing in TypeScript:

import { create, all, factory } from 'mathjs';
const mathjs = create(all);
mathjs!.import!([ ... ]);

Contributor Guide