4.4. never
<p><code>never</code> 的含义是:任何值都不是,简⾔之就是不能有值, <code>undefined</code> 、 <code>null</code> 、 <code>''</code> 、 <code>0</code> 都不行!
1.几乎不用·never· 去直接限制变量,因为没有意义,例如:</p>
<pre><code>/* 指定a的类型为never,那就意味着a以后不能存任何的数据了 */
let a: never
// 以下对a的所有赋值都会有警告
a = 1
a = true
a = undefined
a = null</code></pre>
<p>2.<code>never</code> ⼀般是 <code>TypeScript</code> 主动推断出来的,例如:</p>
<pre><code>// 指定a的类型为string
let a: string
// 给a设置⼀个值
a = 'hello'
if(typeof a === 'string'){
a.toUpperCase()
}else{
console.log(a) // TypeScript会推断出此处的a是never,因为没有任何⼀个值符合此处的逻辑
}</code></pre>
<p>3.<code>never</code> 也可⽤于限制函数的返回值</p>
<pre><code>// 限制demo函数不需要有任何返回值,任何值都不⾏,像undeifned、null都不⾏
function demo():never{
throw new Error('程序异常退出')
}</code></pre>