美文网首页
(二)typeScript 基础类型的介绍

(二)typeScript 基础类型的介绍

作者: Amy_yqh | 来源:发表于2020-03-15 16:09 被阅读0次

typeScript 中的类型比JavaScriptzh主要多了Tuple(元组)、Enum(枚举)、void(无类型)、Never等类型。在我们定义变量、函数、类、接口等时候,要在名字后面增加对应的类型。

1、boolean

let isDone:boolean = true

2、number

let isNumber:number = 123

3、string

let isString:string = 'Amy'

当然也支持字符串模板
console.log(`my name is ${isString}`)

4、array

let arr:number[] = [1,2,3]
let arr1:Array<number> = [1,2,3]
有2种定义数组的方式,数组里面的元素也要定义其
类型

5、Tuple

tuple 元组表示一个已知元素数量和类型的的数组。类型可以不同,元组中的数量和类型必须与定义的保持一致

let tupleList:[number,string] = [12,'amy']
元组中元素的数量,元素对应的类型都必须一致,否则会报错
let tupleList:[number,string] = [12,'amy',false]// error 越界

6、Enum

(1)枚举使用关键词Enum来定义。enum默认值为0,并不断递增
enum Color {
    red,blue,yellow
}
let color:Color = Color.red

(2)枚举也可以自定义赋值
enum Color {
    red="红色",blue="蓝色",yellow="黄色"
}
let color:Color = Color.red

7、Any

当我们不清楚使用的数据类型时,我们可以使用any来替代

let notSure:any = 123
notSure = 'amy'
let list:any[]=[12,'amy',false]

8、void

void 与any刚刚好相反,表示没有任意一种类型 ,常用于函数没有返回任何东西时使用

function warnUser(): void {
    console.log("This is my warning message");
}

void类型只能赋值undefined和null(null测试也不能赋值给void类型)
let unusable: void = undefined;

9、null and undefined

let n:null = null
let u:undefined = undefined

null和undefined只能赋值给void和它们各自的类型

10、never

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

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

11、类型断言

有时候你会遇到这样的情况,你会比TypeScript更了解某个值的详细信息。 通常这会发生在你清楚地知道一个实体具有比它现有类型更确切的类型。

(1)尖括号”语法
let someValue: any = '这是一个断言式'
let strLength:number = (<string>someValue).length
console.log(strLength)

(2)as语法
let someValue: any = '这是一个断言式'
let strLength:number = (someValue as string).length

相关文章

网友评论

      本文标题:(二)typeScript 基础类型的介绍

      本文链接:https://www.haomeiwen.com/subject/dnsrehtx.html