Я был озадачен сценарием, в котором я использую обещание (затем | ловить) для обработки ошибок, но также жду чистоты кода. Вот то, на что я смотрю:
let rules:Rules = await elb.describeRules(params).promise().then(_handleSuccess).catch(_handleError);
Обработчик ошибок:
function _handleError(e:AWSError) {
console.error(`Error getting rules info - [${e.code}] ${e.message}`);
throw(e)
}
Обработчик успеха:
function _handleSuccess(res:DescribeRulesOutput) {
console.log(`Get rules info: ${JSON.stringify(res.Rules,null,4)}`);
return res.Rules ;
}
с момента моей ошибки Хендлер всегда будет отбрасывать, я никогда не получу ответ. Моя IDE (VSCode) говорит мне следующее:
Type 'void | Rules' is not assignable to type 'Rules'.
Type 'void' is not assignable to type 'Rules'.ts
Теперь, если я сделаю let rules:Rules|void
, тогда я в порядке, но разве это хорошая практика?