如何允许缺少 .d.ts 类型定义的模块?

Hyp*_*olf 4 import typescript

我正在使用一些不受欢迎的模块,例如Dyojs-sha3,它似乎没有任何类型。

我现在并不真正关心第三方库中的类型,我不想花几个小时来输入这些类型。我主要将它用于服务器,以限制我的错误并在开发过程中更轻松地进行故障排除。

Cannot find module X之前遇到过错误,所以我"moduleResolution": "node"在 tsconfig.json 文件中添加了:。

如何使打字稿不抱怨节点模块缺少类型?

整个错误:

Could not find a declaration file for module 'dyo'. '/node_modules/dyo/dist/dyo.umd.js' implicitly has an 'any' type.
  Try `npm install @types/dyo` if it exists or add a new declaration (.d.ts) file containing `declare module 'dyo';` [7016]
Run Code Online (Sandbox Code Playgroud)

// @ts-nocheck在网络某个黑暗地方的评论中找到了它,但它似乎不起作用。

我可以通过模块关闭此功能吗?

art*_*tem 8

您可以创建虚拟.d.ts定义,该定义将允许从模块导入任何内容 - 导入它将导致dyo具有any类型(导入它的确切方法取决于esModuleInterop编译器设置以及如何从 导出dyo.umd.js)。

  1. 在项目中的某个位置创建一个文件dyo.d.ts,其中包含一行

    declare module 'dyo';
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在引用该模块的文件中,在顶部添加此行以及适当的dyo.d.ts文件路径:

    /// <reference path='./dyo.d.ts' />
    
    Run Code Online (Sandbox Code Playgroud)

2. 的替代方法是将dyo.d.ts文件添加到编译中包含的文件列表中tsconfig.json

"files": [
    ... other files as necessary ...

    "./path/to/dyo.d.ts"
]
Run Code Online (Sandbox Code Playgroud)