存在するはずのないことを示す[[TypeScript]]の型。
- [[never型]]はすべての型に代入できる
- [[never型]]にはいかなる型も代入できない (例外として、[[never型]]はOK)
必ずエラーをthrowする関数の[[戻り値型]]に割り当てられたり、絶対に入ることのない分岐内で分岐対象となった変数の型に割り当てられたりする。
```ts
type Animal = "dog" | "cat"
declare let animal: Animal
switch(animal) {
case "dog":
animal
// ^? let animal: "dog"
break
case "cat":
animal
// ^? let animal: "cat"
break
default:
animal
// ^? let animal: never
}
```
<button class="playground"><a href="https://www.typescriptlang.org/play?#code/C4TwDgpgBAggdgSwLYEMA2UC8UBEATAewHMcoAfXAYxWBwCg8JK0UAnaNCYKFRVNAFyw+6OnQDOAdwTBKACwAUvZOgCUUAN50oUauOj5iOAdp1nl-U2agB6G1AB6AfitmARuxQBrU3oPVaE2sdC1Fg23tnVx0PCG9TRgAzFABXNGAg4NC0aIjHFwBfIA">Playground</a></button>
## MOC
- 📒**関連**
- [[📕TypeScriptのswitch文でcaseの考慮漏れを検知]]
- 📜**アクティビティ**
- 📝**トラブルシューティング**