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()
`

 

posted @   俊king  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示