How can I make sure my value is not undefined after checking the error, since they can't both be undefined.
function run<V>(fn: () => V): [V | undefined, Error | undefined] {
let value
let error
try {
value = fn()
} catch (e) {
error = e as Error
}
return [value, error]
}
const [value, error] = run(() => 1)
if (error) return
value: number | undefined // expected "number"