#MOC [[πŸ—ƒοΈγƒͺγƒ†γƒ©γƒ«εž‹(TypeScript)]]を使うことで、[[πŸ—ƒοΈγƒ¦γƒ‹γ‚ͺγƒ³εž‹(TypeScript)]]γ‚’εˆ€εˆ₯可能γͺε½’εΌγ§ζ‰±γ†γ“γ¨γŒγ§γγ‚‹γ€‚ δΎ‹ ```ts type UploadStatus = InProgress | Success | Failure; type InProgress = { type: "InProgress"; progress: number }; type Success = { type: "Success" }; type Failure = { type: "Failure"; error: Error }; function printStatus(status: UploadStatus) { if (status.type === "InProgress") { // γƒͺγƒ†γƒ©γƒ«εž‹γ§εˆ€εˆ₯することで、progressγŒγ‚γ‚‹γ“γ¨γ‚’εˆ€εˆ₯γ§γγ‚‹γ‚ˆγ†γ«γͺγ‚‹ console.log(`をップロード中:${status.progress}%`); } else { // δΈ­η•₯ } } ``` ## πŸ“šγƒ‰γ‚­γƒ₯γƒ‘γƒ³γƒˆ - [刀εˆ₯可能γͺUnionεž‹ - TypeScript Deep Dive ζ—₯本θͺžη‰ˆ](https://typescript-jp.gitbook.io/deep-dive/type-system/discriminated-unions) - [刀εˆ₯可能γͺユニγ‚ͺγƒ³εž‹ (discriminated union) | TypeScriptε…₯ι–€γ€Žγ‚΅γƒγ‚€γƒγƒ«TypeScript』](https://typescriptbook.jp/reference/values-types-variables/discriminated-union) ## πŸ“–γƒŽγ‚¦γƒγ‚¦ ## πŸ’γƒˆγƒ©γƒ–γƒ«γ‚·γƒ₯ーティング