Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何允许缺少.d.ts类型定义的模块?_Typescript_Import - Fatal编程技术网

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

Typescript 如何允许缺少.d.ts类型定义的模块?,typescript,import,Typescript,Import,我正在使用一些不受欢迎的模块,比如Dyo和js-sha3,它们似乎没有任何类型 我现在真的不关心第三方库中的类型,我不想花几个小时键入这些类型。我主要在服务器上使用它来限制我的错误,并在开发过程中简化故障排除 我之前有一个找不到模块X错误,所以我在tsconfig.json文件中添加了:“moduleResolution”:“node” 如何使typescript不抱怨节点模块缺少类型 整个错误是: Could not find a declaration file for module 'dy

我正在使用一些不受欢迎的模块,比如
Dyo
js-sha3
,它们似乎没有任何类型

我现在真的不关心第三方库中的类型,我不想花几个小时键入这些类型。我主要在服务器上使用它来限制我的错误,并在开发过程中简化故障排除

我之前有一个
找不到模块X
错误,所以我在tsconfig.json文件中添加了:
“moduleResolution”:“node”

如何使typescript不抱怨节点模块缺少类型

整个错误是:

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]
我在网上某个黑暗的地方的评论中找到了
/@ts nocheck
,但它似乎不起作用


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

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

  • 在项目中的某个地方创建一个包含一行的文件
    dyo.d.ts

    declare module 'dyo';
    
  • 在引用该模块的文件中,将此行添加到顶部,并具有指向
    dyo.d.ts
    文件的适当路径:

    /// <reference path='./dyo.d.ts' />
    
    "files": [
        ... other files as necessary ...
    
        "./path/to/dyo.d.ts"
    ]
    

    对于不想创建自己的
    .d.ts
    定义文件的用户,您可以在
    tsconfig.json
    中使用
    “noImplicitAny”:false
    ,以允许在不使用TypeScript定义文件的情况下使用外部库

    例如:

    {
    “保存”:false,
    “编译器选项”:{
    ...
    “noImplicitAny”:错,
    ...
    }
    }
    }
    

    这允许TypeScript从每个缺少的类型中推断出
    任何
    类型,因此这也会影响您自己的项目。

    我确实使用了
    文件
    方法,以避免修改模块文件,这些文件在以后的更新过程中可能会中断。谢谢!