728x90
type LoadingState = {
state: "loading";
};
type SuccessState = {
state: "success";
response: {
body: string;
};
};
type FailState = {
state: "fail";
reason: string;
};
type ResourceLoadState = LoadingState | SuccessState | FailState;
function printLoginState(state: ResourceLoadState) {
switch (state.state) {
case "loading":
console.log("๐ loading...");
break;
case "success":
console.log("๐ loaded");
break;
case "fail":
console.log("๐ฑ no network");
break;
default:
throw new Error("unknown state:${state}");
}
}
printLoginState({ state: "loading" }); // ๐ loading...
printLoginState({ state: "success", response: { body: "loaded" } }); // ๐ loaded
printLoginState({ state: "fail", reason: "no network" }); // ๐ฑ no network728x90
'TypeScript > ํ์ ์คํฌ๋ฆฝํธ TypeScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ์ ์คํฌ๋ฆฝํธ] ์ ์ฐจ์งํฅ์ ์ปคํผ๋จธ์ vs ๊ฐ์ฒด์งํฅ์ ์ปคํผ๋จธ์ (0) | 2022.04.18 |
|---|---|
| [ํ์ ์คํฌ๋ฆฝํธ ์ ์ฉ ์์] ๊ฐ์ฒด์งํฅ 4๊ฐ์ง ์์น (0) | 2022.04.17 |
| ํ์ ์คํฌ๋ฆฝํธ ์ขํ ์ด๋ ์์ (0) | 2022.04.17 |
| ํ์ ์คํฌ๋ฆฝํธ ๊ณ์ฐ๊ธฐ ํจ์ ๋ง๋ค๊ธฐ (0) | 2022.04.17 |
| Union๊ณผ ๋ ๋ค๋ฅธ Intersection ํ์ (0) | 2022.04.15 |