【问题标题】:Importing namespace and interface with methods in TypeScript (TSX) in pdfjs-dist (PDFJS)在 pdfjs-dist (PDFJS) 中使用 TypeScript (TSX) 中的方法导入命名空间和接口
【发布时间】:2018-05-25 02:44:35
【问题描述】:

我尝试在我的 React 项目中使用 pdfjs-dist,但是在尝试导入项目中的模块和函数时遇到了很多问题。

@types/node_modules 中的 pdfjs-dist 模块 index.d.ts 被定义为包含命名空间“PDF”和导出“PDF”的模块“pdfjs-dist”。

该文件具有接口,其中包含我想从其他类中调用的方法,例如“getDocument(name:string)”。

简而言之;该文件包含许多通过该接口实现的接口和方法,形式为:

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

declare namespace PDF {
  interface PDFJSStatic {
    getDocument(
      source: string,
      pdfDataRangeTransport ? : any,
      passwordCallback ? : (fn: (password: string) => void, reason: string) => string,
      progressCallback ? : (progressData: PDFProgressData) => void): PDFPromise < PDFDocumentProxy > ;

  }

我尝试过使用常规的导入语句,例如:

import * as PDF from "pdfjs-dist"

import { PDFJSStatic } from "pdfjs-dist"

但是,它似乎反应不太好。 VS Code 给了我所有的接口,所以我可以看到它们是什么,但这是我对 React 和 Typescript 的了解有点不足的地方。 我将如何调用这些方法并实际使用“getDocument()”方法?

【问题讨论】:

  • 由于某种原因,修复似乎是先导入接口,以便在使用 require 时可以使用 PDFJSStatic 和其他接口。

标签: reactjs typescript module pdfjs


【解决方案1】:

由于某种原因,修复似乎是先导入接口,以便在第 2 行使用 require 语句时可以使用 PDFJSStatic 和其他接口。

我使用的导入语句是;

import { PDFJSStatic, PDFPageProxy } from "pdfjs-dist";
let PDFJS: PDFJSStatic = require("pdfjs-dist");

这可能不是正确的做法,但它确实有效。

【讨论】:

    猜你喜欢
    • 2021-09-18
    • 2020-12-22
    • 2020-03-02
    • 1970-01-01
    • 2021-07-04
    • 2022-08-24
    • 2019-11-18
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多