このライブラリのTypescriptの「型定義」をお願いしたいのですが。 私のTypescriptプロジェクトでこのライブラリを使用するのは素晴らしいことです。
ありがとう。
これが正確に何であるかについて少し詳しく説明していただけますか? なぜ今TypeScriptプロジェクトでそれを使用できないのですか、そしてこの変更はどのくらいの大きさですか?
display / api.jsから定義ファイルを再作成することが可能であり、それをすでに行っている人にとってはより簡単になります。 https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.htmlからスタイルを適応させ
pdf.d.tsは、src /フォルダー内のファイルではなく、pdfjs-dist / build /pdf.jsファイル用に作成されることに注意してください。
「型宣言ファイル」を自分で作成した経験がないので、「型宣言ファイル」を作成するのにどれだけの作業が必要かわかりません。
Typescriptでは「型宣言ファイル」なしでサードパーティのJavascriptライブラリを使用できると思いますが、「型宣言ファイル」が利用できる場合は、サードパーティのライブラリを使用しながら豊富なインテリセンスを得ることができます。
https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.htmlは、「型宣言ファイル」について学び始めるのに適したリソースです。
「型宣言ファイル」もNPMで利用できるようにしていただければと思います。 プロジェクトに簡単に含めることができます。
たとえば、次のコマンドを使用します。npminstall @ types / pdfjs-dist --save-dev
「@types /」を介してそれらを公開することは、それを行う1つの方法であり、通常はサードパーティの寄稿者によって作成されます。 .d.tsファイルのサポートを含めることを約束している場合は、それらをpdfjs-distのpackage.jsonマニフェストに含めることができます(別のnpmパッケージafaikに配置する理由はありません)
PS違いについては、https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.htmlを参照してください。
どうやら、既存のNPMパッケージと一緒に「型宣言ファイル」をバンドルすることができます。 私はそれを忘れました。 @ types /に公開する必要はありません
このためのDefinitelyTypedリポジトリにd.tsファイルがあります: DefinitelyTyped pdf.js
私はそれがどれほど完全で正確であるかをチェックしていませんが、それは良い出発点かもしれません。
DefinitelyTypedのタイピングを使ってみましたが、とてもひどいので笑えます。 (泣かないように笑う)
これらは最新のタイピングです(移動されました): https :
それらの使用方法は次のとおりです。
// imports typings first
import { PDFJSStatic, PDFDocumentProxy, PDFPromise } from 'pdfjs-dist';
// then import the actual library using require() instead of import
let pdfjs: PDFJSStatic = require("pdfjs-dist");
// only then you can actually do something useful
pdfjs.getDocument('helloworld.pdf').then(function (pdf: PDFDocumentProxy ) {
let pageNum = 1;
renderPage(pdf, pageNum);
});
架空のPDFJSStatic
型をインポートし、 require()
を使用してその型の変数を初期化する方法がわかりますか? それは完全にナンセンスです。 (原作者に違和感はありません)
pdfjsのタイピングの品質を高める必要があるため、この問題を再度開いてください。 これらのSOの質問のいくつかを見てください。
TypeScriptアプリでpdf.jsを使おうとするほとんどの人は、結局はくだらないコードを書いたり、あきらめて何か他のことを試したりすることになると思います。 DefinitelyTypedからのアナウンスなしに、タイピングが@types/pdf
から@types/pdfjs-dist
移動されても役に立ちません。
したがって、実際には、 pdfjs-dist
パッケージに自己完結型の高品質の型指定があれば、どこのTypeScript開発者にとってもはるかに優れています。
@StevenLiekensは絶対に正しいです。 型定義ファイル@types/pdfjs-dist
は悲劇です。 GlobalWorkerOptions
すらありません。 Mozillaがこのプロジェクトの型定義ファイルを提供するのは難しいですか? 私たちはMozillaにもっと期待しています。
これをぶつけます。 @types/pdfjs-dist
は使用可能にさえ近くありません。
@types/pdfjs-dist
でも苦労しています。 テキストレイヤーのレンダリングは含まれていません。 私は宣言のマージによってモジュールを拡張することに頼りました:
declare module "pdfjs-dist" {
export interface TextLayerRenderTask extends PDFLoadingTask<void> { }
export interface RenderTextLayerOptions {
textContent: TextContent;
viewport: PDFPageViewport;
container: HTMLElement;
}
export function renderTextLayer(options: RenderTextLayerOptions): TextLayerRenderTask;
}
@SandyGiffordはい... pdf.jsタイプスクリプトタイプは非常に古くなっているようです。
PRを送ったら、これを公式にサポートしてもらえますか? APIはそれほど難しくありません。
これは本当に本当に本当に本当に必要です。 pdf.jsは素晴らしい/機能的ですが、APIは本質的に文書化されていません。 これは本当に修正する必要があります。
+1、適切な型定義が必要です!
コミュニティからの関心を簡単に測定できるように、返信する代わりにトップコメントを+1してください。 さらに、このための作業が進行中です。 2日前に着陸した#11235と6日前に着陸した#11209を参照してください。どちらも、ドキュメントとTypeScript定義の生成を改善するためにJSDocコメントを改善しています。
現在、型宣言ファイルの作成に取り組んでいる人がいますか?
プルリクエスト#12102で修正されました。 保守とテストの両方が可能なソリューションに収束するまでにはかなりの時間がかかりましたが、コミュニティメンバーの懸命な努力のおかげで、現在は完了しています。 今後のpdfjs-dist
リリースでは、JSDocコメントから生成されたTypeScript定義の出荷が開始されます。
APIドキュメントをさらに改善するために、コミュニティからの貢献を歓迎します。APIドキュメントを改善するだけでなく、ファイル内のJSDocコメントから生成されるため、タイプも改善します。
最も参考になるコメント
DefinitelyTypedのタイピングを使ってみましたが、とてもひどいので笑えます。 (泣かないように笑う)
これらは最新のタイピングです(移動されました): https :
それらの使用方法は次のとおりです。
架空の
PDFJSStatic
型をインポートし、require()
を使用してその型の変数を初期化する方法がわかりますか? それは完全にナンセンスです。 (原作者に違和感はありません)pdfjsのタイピングの品質を高める必要があるため、この問題を再度開いてください。 これらのSOの質問のいくつかを見てください。
TypeScriptアプリでpdf.jsを使おうとするほとんどの人は、結局はくだらないコードを書いたり、あきらめて何か他のことを試したりすることになると思います。 DefinitelyTypedからのアナウンスなしに、タイピングが
@types/pdf
から@types/pdfjs-dist
移動されても役に立ちません。したがって、実際には、
pdfjs-dist
パッケージに自己完結型の高品質の型指定があれば、どこのTypeScript開発者にとってもはるかに優れています。