打字稿给出,“找不到模块'xmlhttprequest'的声明文件。”

Posted

技术标签:

【中文标题】打字稿给出,“找不到模块\'xmlhttprequest\'的声明文件。”【英文标题】:Typescript gives, "Could not find a declaration file for module 'xmlhttprequest'."打字稿给出,“找不到模块'xmlhttprequest'的声明文件。” 【发布时间】:2019-01-07 06:54:23 【问题描述】:

使用,

import  XMLHttpRequest  from 'xmlhttprequest';

在 Node 上使用 tsc 编译时出现以下错误

index.ts|4 col 32 错误| 7016[QF 可用]:找不到模块“xmlhttprequest”的声明文件。 '<project>/node_modules/xmlhttprequest/lib/XMLHttpRequest.js' 隐含了一个 'any' 类型。尝试npm install @types/xmlhttprequest(如果存在)或添加包含declare module 'xmlhttprequest'; 的新声明(.d.ts)文件

但是,那个包好像不存在,

npm install @types/xmlhttprequest
npm ERR! code E404
npm ERR! 404 Not Found: @types/xmlhttprequest@latest

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ecarroll/.npm/_logs/2018-07-31T00_19_20_299Z-debug.log

有没有办法封装这种类型?

【问题讨论】:

【参考方案1】:

您可以尝试在命令行中执行npm install @types/xmlhttprequest --save

如果它给你错误,那么这意味着 xmlhttprequest 库不支持 TypeScript。

【讨论】:

【参考方案2】:

这意味着该库不包含类型定义,并且没有任何人来自DefinitelyTyped 项目编写它们。所以你不能让编译器做任何类型检查。您仍然可以使用该库

import * as xhr from 'xmlhttprequest'

或者,取决于您的编译器版本

const xhr = require('xmlhttprequest')

【讨论】:

这打印同样的东西,./lib/UNGEGN.ts|3 col 22 error| 7016[QF 可用]:找不到模块“xmlhttprequest”的声明文件。 '/home/ecarroll/code/toponym-esque/node_modules/xmlhttprequest/lib/XMLHttpRequest.js' 隐含了一个 'any' 类型。尝试npm install @types/xmlhttprequest(如果存在)或添加包含declare module 'xmlhttprequest'; 的新声明(.d.ts)文件

以上是关于打字稿给出,“找不到模块'xmlhttprequest'的声明文件。”的主要内容,如果未能解决你的问题,请参考以下文章

访问数组索引时如何强制打字稿给出错误

打字稿:React Native useRef 给出错误“对象可能为空”

类装饰器上的打字稿文档-返回“类扩展构造函数”的函数

打字稿,如何使用类作为参数的类型

打字稿 + ES6 代理

开玩笑的打字稿 - 模拟日期构造函数