TypeScriptコンパイラには、2つのemitter
が用意されています。
emitter.ts
:これはあなたが最も興味を持っているEmitterです。これがそのTS->JavaScript Emitterです。declarationEmitter.ts
:これは_TypeScriptソースファイル_(.ts
ファイル)の_宣言ファイル_(.d.ts
)を生成するために使用されるEmitterです。
このセクションではemitter.ts
を見ていきます。
Programはemit
関数を提供します。この関数は主にemitter.ts
のemitFiles
関数にデリゲートします。コールスタックは次のとおりです:
Program.emit ->
`emitWorker` (local in program.ts createProgram) ->
`emitFiles` (function in emitter.ts)
emitWorker
がEmitterに(emitFiles
への引数を介して)提供するものの1つはEmitResolver
です。EmitResolver
はProgramのTypeCheckerによって提供され、基本的にcreateChecker
のローカル関数のサブセットです。