0

私はそのMY_FILE.tsようなファイルを持っています:

const someFunction = (param: MY_NAMESPACE.PARAM) : boolean => { // DO SOMETHING };

param 型は、ファイルでnamespace呼び出されMY_NAMESPACEた I を介してアクセスされます。このような:declareMY_NAMESPACE.d.ts

src/MY_NAMESPACE.d.ts

declare namespace MY_NAMESPACE {
  type PARAM: SOME_TYPE
}

MY_FILE.tsスクリプトを含むそのファイルを実行する必要があります。

これはうまくいきます:

npx babel-node src/MY_FILE.ts --extensions ".ts"

そして、これは機能しません(そして、うまく機能することを期待していました):

npx ts-node src/MY_FILE.ts

次のエラーが表示されます。error TS2503: Cannot find namespace MY_NAMESPACE

ここに画像の説明を入力

注: 私の実際のケースでは、MY_NAMESPACEは と呼ばれTYPESます。

どうすればそれを動作させることができts-nodeますか?

4

1 に答える 1

2

同様の問題がありました。問題は、の-option をts-node無視し、開始ファイルの imports/refs のみを無視することでした ( https://github.com/TypeStrong/ts-node#help-my-types-are-missingを参照)。includetsconfig.json

filesのオプションを使用して問題を解決しts-nodeましたtsconfig.json

{
    "compilerOptions": {...},
    "ts-node": {
        "files": true
    },
    "include": [
        "./src/**/*.ts",
        "./libs/**/*.d.ts"
    ]
}

それには他の解決策があります (トリプルスラッシュ ディレクティブ、typeRoots)。上記のリンクを読んでください。

于 2021-01-04T14:19:22.863 に答える