我怎么应该使用打字稿中的"pdf"包

Nat*_*han 7 javascript typescript pdfjs

我已经安装了包含类型的pdf

npm install --save pdf @types/pdf
Run Code Online (Sandbox Code Playgroud)

不幸的是,我找不到任何关于如何使用它的文档.如果我做:

import {PDFJS} from 'pdf';
PDFJS.getDocument(fileName)
Run Code Online (Sandbox Code Playgroud)

我明白了:

TyeError: Cannot read 'getDocument' of undefined
Run Code Online (Sandbox Code Playgroud)

那么我应该如何初始化呢?

Joe*_*lay 6

更新:

自编写此答案以来,已重命名类型定义以匹配NPM包,并添加了适当的导出定义,因此您可以忽略以下所有内容npm install --save-dev @types/pdf-dist.


原答案:

这是错误的包命名的结果 - @types/pdf包提供了Mozilla的PDF.js的类型(您可以使用pdfjs-dist包通过NPM获得),而不是很久以来就放弃了pdf.

npm uninstall --save pdf
npm install --save pdfjs-dist
Run Code Online (Sandbox Code Playgroud)

此外,似乎@types/pdf定义仅将PDF.js定义为全局变量,而不是可导入模块.尽管库确实支持导入这一事实...将以下内容添加到您的项目中,它应该修复它.

declare module "pdfjs-dist" {
    export = { PDFJS };
}
Run Code Online (Sandbox Code Playgroud)

然后像这样导入PDF.js:

import { PDFJS } from "pdfjs-dist";
Run Code Online (Sandbox Code Playgroud)