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