web-dev-qa-db-ja.com

ts-nodeはd.tsファイルを無視しますが、tscはプロジェクトを正常にコンパイルします

TypeScriptプロジェクトを正常にコンパイルしたら、ts-nodeを使用してVS Codeのデバッグモードで実行するつもりでした。問題は、ts-nodeが私が作成したd.tsファイルを見つけられないことです(tscは問題ありません)。

プロジェクト構造は次のとおりです。

/
    conf/
    dist/
    src/
        types/
package.json
tsconfig.json

tsconfig.json関連エントリは次のとおりです。

{
    "compilerOptions": {
        "target": "es2017",
        "module": "commonjs",
        // "lib": [],
        "sourceMap": true,
        "outDir": "dist",
        "rootDir": "src",
        "moduleResolution": "node",
        "baseUrl": ".",
        "paths": {
            "*": [
                "node_modules/*",
                "src/types/*"
            ]
        },
        // "rootDirs": [],
        // "typeRoots": [],
        // "types": [],
    },
    "include": [
        "src/**/*"
    ]
}

ts-nodeが見つからない定義ファイルはsrc/types/global.d.tsです:

import { App } from '../App';

declare global {
    namespace NodeJS {
        interface Global {
            app: App;
        }
    }
}

それで、ts-nodeで実行しようとしています:

TSError: ⨯ Unable to compile TypeScript:
src/boot.ts(15,59): error TS2339: Property 'app' does not exist on type 'Global'.

グローバルに解決する方法は? /// <reference path="./types/global.d.ts" />がうまくいくことがわかりましたが、global.appを使用して、すべてのファイルでそれを繰り返す必要があります。

私のTypeScriptバージョンは3.0.1です

13
Forseti

ts-node --files src/boot.ts

7.0.0のts-node、デフォルトでは起動時にtsconfig.jsonからファイルをロードしません。--filesを指定する必要があります

19
欧阳斌