現象
tsc を実行した場合
$ tsc (問題なし) $
ts-node を実行した場合
$ ts-node apps/twitter.ts /home/USERNAME/.nodenv/versions/16.14.2/lib/node_modules/ts-node/src/index.ts:820 return new TSError(diagnosticText, diagnosticCodes); ^ TSError: ⨯ Unable to compile TypeScript: apps/twitter.ts:27:31 - error TS2304: Cannot find name 'Tweet'.
結論
tsconfig.json
に "ts-node"
プロパティを以下のように追加する。
{ "compilerOptions": { "target": "es2021", (省略) }, "ts-node": { "files": true } }
補足
ts-node
コマンドに --files
オプションを付けて実行する*1、という手法もありますが、tsconfig.json
に書いておくと楽です。
*1:そしてそれを package.json の scripts に追加する