首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用用于js的不同文件夹的d.ts (Pdfjs)

使用用于js的不同文件夹的d.ts (Pdfjs)
EN

Stack Overflow用户
提问于 2021-10-19 13:56:03
回答 1查看 150关注 0票数 0

当前pdfjs https://github.com/mozilla/pdfjs-dist/tree/bd2a6cd87f9e0c3a9b3197d5d27acfb99886629b在单独的文件夹中包含d.ts和js文件:

https://github.com/mozilla/pdfjs-dist/blob/bd2a6cd87f9e0c3a9b3197d5d27acfb99886629b/types/src/display/node_utils.d.ts

https://github.com/mozilla/pdfjs-dist/blob/bd2a6cd87f9e0c3a9b3197d5d27acfb99886629b/lib/display/node_utils.js

如果我进口它们时:

代码语言:javascript
复制
import { NodeCanvasFactory } from 'pdfjs-dist/types/src/display/node_utils';

它生成错误的js代码:

代码语言:javascript
复制
const api_1 = require('pdfjs-dist/types/src/display/api');

是否有可能与js一起正确映射d.ts?

其结果应如下:

代码语言:javascript
复制
const api_1 = require("pdfjs-dist/lib/display/api");

我还试着和tsconfig.json合作

代码语言:javascript
复制
"paths": {
  "pdfjs-dist/types/src/*": ["./pdfjs-dist/lib/*"]
}

全tsconfig.json

代码语言:javascript
复制
{
    "compilerOptions": {
        "target": "es2017",
        "module": "commonjs",
        "lib": [
            "es2017",
            "dom"
        ],
        "outDir": "dist",
        "rootDir": "src",
        "strict": true,
        "strictNullChecks": true,
        "noImplicitAny": true,
        "esModuleInterop": true,
        "resolveJsonModule": true,
        "forceConsistentCasingInFileNames": true,
        "declaration": true,
        "types": [
            "node",
            "jest"
        ],
        "sourceMap": true,
        "paths": {
            "pdfjs-dist/types/src/*": ["./pdfjs-dist/lib/*"]
        }
    },
    "include": [
        "src/**/*.ts"
    ],
    "exclude": [
        "node_modules", 
        "**/*.spec.ts"
    ]
}
EN

回答 1

Stack Overflow用户

发布于 2022-04-29 22:13:37

这是我为同样的问题想出的解决方案。(在您的问题中,您正在混合apinode_utils,但如果您想导入node_utils,则会回答)。

首先,创建一个名为node_utils.d.ts的声明文件(注意,该文件的名称必须与模块名称相同)。

在此文件中添加以下内容:

代码语言:javascript
复制
declare module 'pdfjs-dist/lib/display/node_utils' {
    export * from 'pdfjs-dist/types/src/display/node_utils'
}

现在,您可以在导入时使用pdfjs-dist/lib/display/node_utils,如下所示,并且类型记录将被拾取声明文件。不幸的是,对于每个您想要导入的文件,如果输入了与js文件不同的文件夹,就必须这样做!

代码语言:javascript
复制
import { NodeCanvasFactory } from 'pdfjs-dist/lib/display/node_utils';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69632194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档