Typescript

2020-12-23  本文已影响0人  张德瘦嬢嬢

什么是Typescript

Never

Never类型表示的是那些永不存在的值的类型。

使用小写的never声明一个Never类型,如下:

let ne:never

(1).总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型。

(2).变量也可能是Never类型,当它们被永不为真的类型保护所约束时。

Never类型是任何类型的子类型,可以赋值给任何类型;没有类型是Never的子类型或可以赋值给Never类型(除了Never本身)。 即使 Any类型也不可以赋值给Never类型。

never类型表示的是那些永不存在的值的类型。 例如, never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。

never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never

下面是一些返回never类型的函数:

<pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">// 返回never的函数必须存在无法达到的终点 function error(message: string): never { throw new Error(message); } // 推断的返回值类型为never function fail() { return error("Something failed"); } // 返回never的函数必须存在无法达到的终点 function infiniteLoop(): never { while (true) { } }</pre>

类型断言

类型断言好比其它语言里的类型转换

类型断言有两种形式。 其一是“尖括号”语法:

<pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length;</pre>

另一个为as语法:

<pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">let someValue: any = "this is a string"; let strLength: number = (someValue as string).length;</pre>

interface

type

上一篇下一篇

猜你喜欢

热点阅读