【发布时间】:2019-11-21 11:32:55
【问题描述】:
假设我有以下内容
const client: Client | boolean = await db.connect()
if (client === false) {
return
}
await start(client)
db.connect() 要么返回客户端(连接成功),要么返回 false(连接失败)。
start 只接受 Client 作为参数:
const start = async (dbClient: Client): Promise<void> => {
如您所见,await start(client) 出现错误:
true 类型的参数 |客户端不可分配给类型客户端
我可以通过在start 中指定Client | boolean 的类型来解决这个问题,并且知道它永远不会是假的,因为它会在start 被调用之前提前返回,并且永远不会是true因为 connect 永远不会返回 true,但是这很奇怪(并且可能会导致进一步的问题)。
这种事情的最佳方法/做法是什么?
我可以返回一个对象,而不仅仅是从 connect 返回 Client
{
connected: boolean,
client: client,
}
这里更有意义吗?
【问题讨论】:
标签: javascript typescript