.d.tsロールアップ
この記事は、「API Extractorとは?」ページからのチュートリアルの続きです。まずそこから始めることをお勧めします。
次に説明するAPI Extractorの出力は、".d.tsロールアップ"です。例として使用しているプロジェクトには、次のTypeScriptソースファイルがあることを思い出してください。
- src/index.ts
- src/log/Log.ts
- src/log/ILogHandler.ts
上記の各ファイルは、対応する中間出力のセットにビルドされます。
- lib/index.d.ts
- lib/index.js
- lib/log/Log.d.ts
- lib/log/Log.js
- lib/log/ILogHandler.d.ts
- lib/log/ILogHandler.js
Webpackなどのリンカーを使用して、*.jsファイルを結合されたバンドルファイルにロールアップできます:dist/sp-core-library.js
同様に、API Extractorは*.d.tsファイルのロールアップを作成できます:dist/sp-core-library.d.ts
オプションで、.d.tsの「トリミング」を有効にして、@beta
とマークされた宣言をロールアップファイルから除外することもできます:dist/sp-core-library-public.d.ts
トリミングされたファイルの内容は次のようになります
dist/sp-core-library-public.d.ts
/* Excluded from this release type: ILogHandler */
/**
* The Log class provides static methods for logging messages at different levels (verbose,
* info, warning, error) and with context information. Context information helps identify
* which component generated the messages and makes the messages useful and filterable.
* @public
*/
export declare class Log {
private static _logHandler;
/* Excluded from this release type: initialize */
/**
* Logs a verbose message
* @param source - the source from where the message is logged, e.g., the class name.
* The source provides context information for the logged message.
* If the source's length is more than 20, only the first 20 characters are kept.
* @param message - the message to be logged
* If the message's length is more than 100, only the first 100 characters are kept.
*/
public static verbose(source: string, message: string, scope?: ServiceScope): void;
. . .
public static info(source: string, message: string): void;
. . .
public static warn(source: string, message: string): void;
. . .
public static error(source: string, error: Error): void;
}
トリミングを有効にすると、開発者は本番環境をターゲットにしている場合に、不安定なLog.initialize()
関数に誤って依存することを心配する必要がなくなります。その関数はVS Code IntelliSenseにも表示されません!@beta
APIを使用したい場合は、明示的に「ベータ」リリースを選択します。実際の@microsoft/sp-core-libraryパッケージの場合、「オプトイン」は、-plusbeta
サフィックス付きの特別なバージョン番号をインストールすることで実現します(ただし、他のアプローチも可能です)。
API Extractorの.d.tsロールアップ機能は非常に高度です。たとえば、以下をサポートしています。
- エクスポートされた名前が元の定義と異なる宣言
- 他のパッケージからインポートされた型
- 他のパッケージとの
export * from
関係 - マージされた宣言
.d.tsロールアップの大きな制限の1つは、パッケージに単一のエントリポイントがあるという前提です。(そうでない場合、API Extractorのこの機能はおそらく使用できませんが、APIレポートとドキュメント生成機能は引き続き使用できます。)