TypeScript/ํ์
์คํฌ๋ฆฝํธ TypeScript
ํ์ ์คํฌ๋ฆฝํธ ๋ก๋ฉ ์ํ ํ์ ์์
Rainbow๐Coder
2022. 4. 17. 00:40
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