【问题标题】:How am I supposed to use the "pdf" package from typescript我应该如何使用打字稿中的“pdf”包
【发布时间】:2017-05-21 01:49:00
【问题描述】:

我已经安装了 pdf,包括使用的类型

npm install --save pdf @types/pdf

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

import {PDFJS} from 'pdf';
PDFJS.getDocument(fileName)

我明白了:

TyeError: Cannot read 'getDocument' of undefined

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

【问题讨论】:

  • 你也安装了pdf包吗?还是只有 types 包?
  • 我按照我写的方式安装了它。那也安装了pdf包,对吧?我还可以在我的节点模块中找到文件夹“pdf”。

标签: javascript typescript pdfjs


【解决方案1】:

更新:

自从编写此答案以来,类型定义已重命名以匹配 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

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

declare module "pdfjs-dist" {
    export = { PDFJS };
}

然后像这样导入PDF.js:

import { PDFJS } from "pdfjs-dist";

【讨论】:

  • 谢谢!我似乎仍然对导入有问题,因为现在我得到: .../node_modules/@types/pdf/index.d.ts' is not a module.
  • @Nathan:答案已更新 - 通常情况下,问题在于片状类型定义......
  • @Nathan:没问题!当您使用第三方库时,设置 TypeScript 可能会有点麻烦 - 我倾向于在我的项目中有一个名为 definitions.d.ts 的文件,我可以在其中隐藏我必须做的所有重新定义的小细节。
  • 我添加这些行时得到的只是:TS2665:扩充中的模块名称无效。模块“pdfjs-dist”解析为无类型模块这是怎么回事?
  • @ChrisManess:这个答案已经过时了——类型定义已经被重命名以匹配 NPM 包,并且有一个正确的导出定义。我会更新答案。
猜你喜欢
  • 2016-03-15
  • 1970-01-01
  • 2019-07-18
  • 2020-04-17
  • 1970-01-01
  • 2019-08-19
  • 2017-05-07
  • 1970-01-01
  • 2021-07-06
相关资源
最近更新 更多