gpt4 book ai didi

javascript - 导入 Node 模块时出现 TypeScript 编译器错误?

转载 作者:搜寻专家 更新时间:2023-10-30 21:54:36 27 4
gpt4 key购买 nike

我正在尝试使用 this但编译器正在生成以下内容:

Client.ts(2,5): error TS2134: Subsequent variable declarations must have the same type. 
Variable 'XMLHttpRequest' must be of type '{ prototype: XMLHttpRequest; LOADING: number;
DONE: number; UNSENT: number; OPENED: number; HEADERS_RECEIVED: number; new():
XMLHttpRequest; }', but here has type 'any'.

作为引用,产生错误的行是:

var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

我假设这是因为 node.d.ts 没有这个模块的定义是对的吗?如果是这样,我将如何着手实现定义,让我感到困惑的一点是 prototypenew() 具有 XMLHttpRequest 类型。这是递归引用还是会说空类声明就足够了?

最佳答案

这是因为 XMLHttpRequest 是在 lib.d.ts 中定义的:

declare var XMLHttpRequest: {
prototype: XMLHttpRequest;
new (): XMLHttpRequest;
LOADING: number;
DONE: number;
UNSENT: number;
OPENED: number;
HEADERS_RECEIVED: number;
}

这与您对 XMLHttpRequest 的定义冲突,后者实际上解析为 any

var XMLHttpRequest

如果此库与浏览器 XMLHttpRequest 兼容,您可以执行(拆分声明和赋值)。这样编译器就不会尝试将其重新定义为 any:

 var XMLHttpRequest;
XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

如果不是,我建议您使用不同的名称,或者使用 --noLib 编译器标志进行编译。

关于javascript - 导入 Node 模块时出现 TypeScript 编译器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22075117/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com