libraryを書いています。これをtypescriptに移植したいと思います。プロパティを持つ関数を宣言するTypescript
const is = value => {
... do some returns here
}
is.number = x => typeof x === 'number'
is.bla = x => typeof x === 'bla'
index.jsなど:
は現在、それはそのようなものを見て。
const is = value => {
... do some returns here
}
is.number = x => typeof x === 'number'
is.bla = x => typeof x === 'bla'
is
とそのすべてのメソッドについて記述しているインターフェイスを作成しました。私はタイプとis
をマークしようとすると
type TypeQueryMethod = (val: any) => boolean;
interface Is {
(val: any): string;
undefined: TypeQueryMethod;
null: TypeQueryMethod;
...
}
:const is: Is = value => ...
これは、エラーがスローされます:オブジェクトの宣言が分割されているので
Type '(value: any) => string' is not assignable to type 'Is'.
Property 'undefined' is missing in type '(value: any) => string'.
理にかなって。
メソッドとメソッドの両方を持つこのようなオブジェクトを作成するにはどうすればよいですか?
'Object.assign()'を使って型アサーションなしで 'Is'を作成できるはずです。 – jcalz