コンパイルは、なぜ引数を受け取らない仕様か

実際は引数を渡せるが、引数なしと違う挙動をしてしまう。

tsc だけで起動するのが基本的な使い方となる。なぜ?

tsc は tsconfig.json の files を見てコンパイルすべきファイルを決めている。files は、プロジェクトのtsファイル群。個別ファイルを問題にするのではなくて、プロジェクトとして考える。

現在のプログラミングでは、ファイルを扱うのではなくてプロジェクトを扱うという発想だから、引数なし、あるいは暗黙にカレント・プロジェクトを引数にしてコンパイル作業をするのだろう。

tsc と tsc -p . は同じ意味で、-p は project を指定する。-p とファイル引数の同時指定はエラーになる。

error TS5042: Option 'project' cannot be mixed with source files on a command line.

これは、プロジェクト指定とファイル指定がまったく別(非互換)であることの証左だろう。

「ファイルからプロジェクトへ」とう発想の転換をしなくてはならない。