type Success<T> = { type: 'success', value: T}; type Error = { type: 'error', value: string }; type Result<T> = Success<T> | Error; if (result.type === 'error') { result.error; } else { result.value; }