์์ธก ๊ฐ๋ฅํ ์๋ฌ์ผ ๊ฒฝ์ฐ try/catch๋ฅผ ํตํด throw๋ฌธ์ ๋จ์ฉํ์ง ๋ง๊ณ , Error State์ ์ด์ฉํ์ฌ ์๋ฌ ํ์๋ฅผ ํด์ค ์ ์๋ค.
// error state ์ฌ์ฉ ์์
type SuccessState = {
result: 'success'
}
type NetworkErrorState = {
result: 'fail',
reason: 'offline' | 'down' | 'timeout'
}
type ResultState = SuccessState | NetworkErrorState;
class NetworkClient {
tryConnect(): ResultState {
return {
result: 'success'
}
}
}