0
マイクロライブラリとそのタイプのmain exported functionを追加しようとしています。私はそれのために、このようなLIBDEFを作成しました:関数をエクスポートするcommonjsモジュールのlibdefを追加する
フロー型指定された/ micro.js
// @flow
import type { Server, IncomingMessage, ServerResponse } from "http"
declare module "micro" {
declare module.exports: {
(): (fn: (req: IncomingMessage, res: ServerResponse) => void) => Server,
}
}
を、私はこのコードのスニペットと主な機能を使用しようとしている:
そのコードではsrc/index.js
// @flow
const micro = require("micro")
const server = micro((req, res) => {
res.end("Hello world!")
})
server.listen(5000)
は、変数server
、をスニペットとres
は、micro
変数がlibdefから何らかのタイプを受け取っているように見えますが、すべてany
とタイプされています。これはフローによって作成されたcoverage reportに見ることができます。私は関数を定義するいくつかの異なる方法を試しましたが、何も動作していないようです。構文エラーはなく、libdefが見つかったようです。私は間違って何をしていますか?
それは(私は実際にあなたの試していなかったタイプの輸入が働いていないことも可能です例)。しかし、これを試してみてください。 –
私は2つの問題があるようです。最初のものは、呼び出し可能なオブジェクトの構文が間違っています。それは '()'を '$ call'に変更することで修正されました。私はそれが他の値をエクスポートするので、呼び出し可能オブジェクトとしてエクスポートを保持したい。第2の問題は、型のインポートが機能しないということです。 'http'モジュール型は、なぜ動作しないのか分からないように組み込むべきです。エクスプレスバインディングは、そのような 'Server'型をインポートします。 – Hilzu
残念ながら私はあなたの他の質問に対する答えを知らない。別の質問として投稿する価値があります。 –