[英]How do I write overloaded method with different return types in TypeScript?
[英]How do handle Error return types in Typescript?
我有一個函數可以返回一個 Person 類型的對象或一個 Error 類型的對象。 如果不是錯誤,我想有條件地讀取返回對象中鍵的值。
下面代碼片段的最后一行給出了一個錯誤:
類型 'Person | 中不存在屬性'firstName' 錯誤'
該錯誤可以在此鏈接中看到。
interface Person { firstName: string; lastName: string; } function greeter(person: Person): Person | Error { if (person.firstName === 'Malcolm') { return new Error('This firstName is not allowed'); } return { firstName: person.firstName, lastName: person.lastName, }; } const x = greeter({ firstName: "Malcolm", lastName: "Reynolds", }); const { firstName, lastName } = x;
對於某些情況,我必須返回錯誤。 不能跳過。
提前致謝!
首先,我建議您將greeter()
包裝在try ... catch
塊中以處理錯誤。
如果你想這樣做,你可以執行以下操作。
const val = greeter({
firstName: "Malcolm",
lastName: "Reynolds",
})
if (typeof val == Person) {
const x = val as Person;
const {firstName, lastName} = x;
}
在這里您可以檢查結果的類型並進行相應的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.