您的位置:首页 > Web前端 > JavaScript

TypeScript--学习笔记之二

2020-02-02 14:34 1161 查看

TypeScript的数据类型(11种)

JavaScript含有的类型(6种):
  • Number(数字类型)双精度 64 位浮点值。它可以用来表示整数和分数
  • Boolean(布尔类型)表示逻辑值:true 和 false
  • String(字符串类型)使用单引号(’)或双引号(")来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式
  • Array(数组类型)
  • Null:表示对象值缺失
  • Undefined:用于初始化变量为一个未定义的值
TypeScript多出来的类型(5种):
  • Enum(枚举类型)指将变量的值一一列出来,变量的值只限于列举出来的值的范围内
  • Tuple(元组类型)表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。
  • Any(任何类型)可以赋予任意类型的值
  • Never(其他类型(包括null和undefined)的子类型)代表不会出现的值
  • Void(没有任何类型)表示定义方法时没有返回值
枚举类型(enum)
定义
enum  enumName { name1, name2, name3, ... }

使用(下标默认从0开始)
enum fruits { apple, orange, banana }

获取枚举变量的下标:
let index : number = fruits.orange
console.log(index)	// 1

设置枚举变量值的下标:
enum fruits { apple=2, orange, banana }
let index : number = fruits.orange
console.log(index)	// 3(以前面的下标为起点加1)

通过下标获取枚举变量的值:
enum fruits { apple=2, orange, banana }
let value : string = fruits[3]
console.log(value)	// orange

如果取枚举变量不存在的值,会报错:
console.log(fruits.peach)
// error TS2339: Property 'peach' does not exist on type 'typeof fruits'.
元组类型(tuple)
let value :  [ string, numer ]
value = [ 'Mashy', 9 ]	// 正常运行
value = [ 9, 'Mashy' }	// 报错

获取元组的值(类似数组取值)
console.log(value[1])	// 9
Any类型
变量的会动态变化时,需要在编译时跳过编译阶段的类型检查
let x : any = 1	// 数字类型
x = 'My name is Mashy'	// 字符串类型
x = [1, 12, 123]	// 数组类型

改写现有代码时,任意值允许在编译时可选择地包含或移除类型检查
let x: any = 4
x.ifItExists()    // 正确,ifItExists方法在运行时可能存在,但这里并不会检查
x.toFixed()    // 正确

定义存储各种类型数据的数组时
let arrayList: any[] = [1, false, 'fine']
arrayList[1] = 100
Never

never 类型的变量只能被 never 类型所赋值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环)

let x: never
let y: number
x = 123	// 运行错误,数字类型不能转为 never 类型

// 运行正确,never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})()

// 运行正确,never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})()

// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
throw new Error(message)
}

// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
while (true) {}
}
void
有返回值的方法
function hasReturn(): number{
console.log(‘return number!!’)
return 88
}
console.log(hasReturn())	// 88
没有返回值的方法
function notReturn(): void {
console.log("not return")
}
console.log(notReturn())	// undefined
  • 点赞
  • 收藏
  • 分享
  • 文章举报
MashyG 发布了3 篇原创文章 · 获赞 0 · 访问量 67 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: