gpt4 book ai didi

TypeScript tls.TLSSocket() 提示缺少 "socket"参数

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:05 26 4
gpt4 key购买 nike

我正在构建一个非常基本的 IRC 机器人,并使用原始套接字连接到 IRC 服务器。我最初是用纯 Javascript 编写的机器人,现在正在用 TypeScript 重做,但是在通过 TLS 连接时遇到了一些奇怪的问题(在非安全连接上一切正常)。我的机器人的源代码存在 on Bitbucket我遇到的具体问题是 here :

[...]
this.client = this.tlsEnabled
// @ts-ignore
? new TLSSocket()
: new Socket();

this.client.connect(this.port, this.host, () => {
this.sendInitialConnectionMessages();
});
[...]

如果我没有 @ts-ignore 行,VS Code 和 tsc 会提示 new TLSSocket() 调用:

Expected 1-2 arguments, but got 0. An argument for 'socket' was not provided.

事实上,类型定义说它至少需要一个 socket 参数。

但是,如果我通过 new TLSSocket(new Socket())const socket = new Socket()new TLSSocket(socket ),脚本会立即退出而不会触发 this.client.connect() 调用。如果我像上面那样告诉 tsc 忽略 TLSSocket() 缺少参数,一切都会完美运行,并且机器人会通过 TLS 成功连接到服务器!

我假设我在这里做了一些愚蠢的事情,但我不确定是什么。感谢您的帮助!

最佳答案

解决了!在进行了更多搜索和查找示例之后,我将连接功能从我原来的问题重写为:

this.client = this.tlsEnabled
? tls.connect({host: this.host, port: this.port}, () => this.sendInitialConnectionMessages())
: net.connect({host: this.host, port: this.port}, () => this.sendInitialConnectionMessages());

现在一切都按预期进行。

关于TypeScript tls.TLSSocket() 提示缺少 "socket"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59343525/

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