Ich schreibe eine library und ich möchte es in Typoskript portieren.Typescript deklariert eine Funktion mit Eigenschaften
es aussehen Zur Zeit etwas wie folgt aus:
index.js
const is = value => {
... do some returns here
}
is.number = x => typeof x === 'number'
is.bla = x => typeof x === 'bla'
und so weiter.
Ich habe eine Schnittstelle beschrieben is
und alle ihre Methoden.
type TypeQueryMethod = (val: any) => boolean;
interface Is {
(val: any): string;
undefined: TypeQueryMethod;
null: TypeQueryMethod;
...
}
Wenn ich versuche, is
mit dem Typ zu markieren: const is: Is = value => ...
Es wirft einen Fehler:
Type '(value: any) => string' is not assignable to type 'Is'.
Property 'undefined' is missing in type '(value: any) => string'.
Welche sinnvoll, weil die Deklaration des Objekts macht aufgeteilt wird.
Wie konstruieren Sie ein solches Objekt, das sowohl eine Methode als auch Methoden hat?
Sie sollten in der Lage sein, 'Object.assign()' zu verwenden, um ein 'Is' ohne Typzusicherungen zu erstellen. – jcalz