2022/04/02 TypeScript_Study_Day2
# 2022/04/02 TypeScript_Day2
### TypeScript基础类型
- 任意类型:`any` --->声明为`any`的变量可以赋予任意类型的值
- 数字类型:`number` --->双精度64位浮点值,可以表示整数或者分数
**示例:**
`
let binaryLiteral: number = 0b1010; // 二进制
let octalLiteral: number = 0o744; // 八进制
let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0xf00d; // 十六进制
`
- 字符串类似:`string` --->使用单引号或者双引号表示字符串类型,使用反引号(`)来定义多行文本和内嵌表达式 --->类似fmt,Println或者fmt.Printf一样
**示例:**
`
let name: string = "Runoob";
let years: number = 5;
let words: string = `您好,今年是 ${ name } 发布 ${ years + 1} 周年`;
`
- 布尔类型: --->boolean
- 数组类型: --->声明方式和`java`类似
**示例:**
`
let arr: number[] = [1,2];
/*
声明一个数值类型的数组
*/
// 使用泛型
let arr: Array<number> = [1,2];
`
- 元组类型: --->注意这里的元组不是普通的简直对也不是普通的数组类型,它类似于数组但是每一个索引的value类型不必须要相同
**示例:**
`
/*
Base type practice
*/
let tuple: [number, string]
tuple = [0, "HelloWorld"]
console.log(tuple[0])
// 这样就定义了一个元组,里面包含要有两个元素,一个是string类型,一个钥匙number类型
`
**注意:**
访问元组的元素方式是按照数组索引的方式进行访问的,并不是按照`map`的方式进行键值对的形式访问
- 枚举类型(enum): --->枚举类型用于定义数值集合
**示例:**
`
// When enum once declared, it can be used as a variable type
enum Color {Red, Bule, Green, Black}
// Access elements in an enumerated type
let c: Color = Color.Black
console.log(c)
`
**注意:**
这里被打印出来的`c`是枚举的值的位置,并不是值本身--->打印出`3`而不是`Black`
- void: --->方法,无返回值
- null: --->空对象
- undefined: --->初始化变量为一个未定义的值
- never: --->never 是其它类型(包括`null`和`undefined`)的子类型,代表从不会出现的值.
**注意:**
`TypeScript`和`JavaScript`没有整数类型.
#### Any类型
**理解上看`Any`类型会和元组有一些冲突:**
**示例代码:**
`
// Comparing two types
let moreTypeNo2: any[] = [1, false, "HelloWorld"]
let moreTypeNo3: [number, boolean, string] = [1, false, "HelloWorld"]
console.log(moreTypeNo2)
console.log(moreTypeNo3)
`
**这两个变量的打印结果一致,里面的值都可以通过索引的方式进行访问**
**那么`Any`的应用场景是什么?**
`Any`方便改写现有的代码:
`
let x: any = 4;
x.ifItExists(); // 正确,ifItExists方法在运行时可能存在,但这里并不会检查
x.toFixed(); // 正确
`
#### Null和Undefined
`js`中`null`表示空对象引用,用`typeof`检测`null`返回的是`object`
`undefined`是一个没有设置值的变量,`typeof`一个没有值的变量会返回`undefined`
**特点:**
`TypeScript`中启用严格的空校验(--`strictNullChecks`)特性,使得`null`和`undefined`只能被赋值给`void`或本身对应的类型
**示例代码:**
`
let x: number|null|undefined
x = null
x = undefined
`
#### never类型
表示从不会出现的值,在函数中表现为抛出异常或无法执行到终止点
`
let y: never
let z: number
y = (() => {throw new Error("exception")})()
// Return never
function error(message: string): never {
throw new Error(message)
}
// Can not be stop
function loop(): never {
for(;;){}
}
// Call functions
error("Error")
loop()
`
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律