web-dev-qa-db-ja.com

umdライブラリ用のTypeScript定義ファイル(d.ts)を作成する方法

私はライブラリに取り組んでいますsurveyjs

gulp + webpackを使用してumdバンドルを構築します。

TypeScriptプロジェクトで使用するためのタイプ定義バンドル(または複数のd.tsファイルの場合もあります)を作成したいと思います。私はそのようなものが欲しいです:

import * as Survey from 'surveyjs';

Survey。*のすべての内容はここで説明されています: https://github.com/dmitrykurmanov/surveyjs/blob/master/src/entries/ko.ts

私は使用しようとしました:github.com/SitePen/dts-generatorおよびgithub.com/TypeStrong/dts -bundleしかし、成功しなかったとしても、誰かが正しい方向を教えてくれませんか?

8
duodvk

tsconfig.jsondeclarationフラグを追加することで、コードの宣言ファイルを生成するようにtscに要求できます。

あなたの場合は次のようになります。

{
  "compilerOptions": {
    "target": "es5",
    "module": "es2015",
    "sourceMap": true,
    "noImplicitAny": false,
    "jsx": "react",
    "declaration": true
  },
//  "filesGlob": [
  //    "typings/index.d.ts"
  //  ], // TODO
  "include": [
    "typings/index.d.ts",
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts"
  ]
}
6
toskv

Toskvが述べたように、tscを使用して.d.tsファイルを生成できます。問題は、コンパイラが.tsファイルごとに1つずつ、複数の宣言ファイルを作成することです。私が取り組んだ別のプロジェクションでも同じ問題が発生しました。私は、tscによって生成された。d.tsファイルをマージするwebpack用の小さなプラグインを作成することでそれを解決しました。

こちらで確認できます: https://www.npmjs.com/package/TypeScript-declaration-webpack-plugin

0
Aaron Schmid