前言
现代的前端工程大多使用TypeScript,各种古老框架也不断对TypeScript进行支持,从而挽留用户,比如Jquery,一个后端用的比前端多的框架(戏言)。大多数场景下就单单使用_interface_、enum、type、as Type_基本能获得不错的类型提示,语法提示的收益,在遇到更加复杂的类型变化的时候一个_any_瞬间变回js,一个_ts-ingore,没人找到我的错。其实对于这些热门语法,ts本身还有很多的冷门语法,代码的质量(b格)能从这些语法中得到很好的提高。
正文
1. never类型
我相信在很多人心中,_never_类型的使用场景一直是个谜,先看看文档是怎么说的。
never
类型表示的是那些永不存在的值的类型。 例如,never
类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是never
类型,当它们被永不为真的类型保护所约束时。
说的也还算清楚,那到底怎么用呢,职业话语讲怎么落地呢?其实本质上来说,任何类型的使用都是为了获得类型提示,_never_也不例外,看下尤大举的列子
type All = 'foo' | 'bar';
function handleValue(val: All) {switch (val) {case "foo":// 这里