我想讓我的函式明確表示它會拋出錯誤。
例如;
const hexToDec = (string) => {
if (!isHex(string)) {
throw new Error("the given string is not hex.")
}
return parseInt(string, 16);
}
當我在 IDE 上看到這段代碼時,它告訴我這段代碼回傳字串,但沒有關于錯誤可能性的資訊。我的團隊成員可能會忘記“try-catch”。
我有一個想法是制作這個函式async,以便它回傳一個 Promise。但是,我認為這段代碼應該同步......
uj5u.com熱心網友回復:
在 JavaScript 本身中,你不能,沒有什么像你宣告的 Java 的檢查例外的概念。
使用 JSDoc 注釋,您可以注釋函式以說明它拋出:
/**
* Converts the given hex string to a number.
*
* @param {string} string The string to convert.
* @returns {number} The resulting number.
* @throws Error if `string` isn't valid hex.
*/
const hexToDec = (string) => {
if (!isHex(string)) {
throw new Error("the given string is not hex.");
}
return parseInt(string, 16);
};
我的團隊成員可能會忘記“try-catch”。
一般來說,錯誤應該被盡可能遠地捕獲,通常是在環境的入口點函式中(例如,事件處理程式或主機函式回呼)。您的團隊成員不需要將每個呼叫都包含hexToDec在try/中catch ——如果他們不確定字串是否包含有效的十六進制,他們可以使用isHex. 例外是針對例外情況,在您期望字串有效時嘗試轉換字串。
我有一個想法,使這個函式異步,以便它回傳一個 Promise。但是,我認為這段代碼應該同步......
讓它async不會做任何事情來檢查它是否失敗。這只是意味著它不會拋出它會拒絕它的承諾(這是async拋出的版本)。
我錯過了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/482449.html
標籤:javascript 打字稿 错误处理
