Brief Intro:Some information about TypeScript
- Basic Type
- Literal Type
- Any
类型
基础类型
原始类型
- number
- string
- boolean
- null
- undefined
- symbol
对象类型
- object(数组,对象,函数)
新增类型
联合类型
由两个或多个其他类型组成的类型,可以是这些类型中的任意一种
let 变量:类型 1 | 类型 2 | 类型 3 …. = 初始值
let arr1 :number | string = 1 // 可以写两个类型
自定义类型 (类型别名)
自己定义的类型名过长时,定义一个别名,别名一般是 首字母大写
type 别名 = 类型
type s = string // 定义
const str1:s = ‘abc’
const str2:string = ‘abc’
给复杂类型起别名
type NewType = string | number
let a: NewType = 1
let b: NewType = ‘1’
函数
- 普通函数:function 函数名 (形参 1: 类型 = 默认值, 形参 2:类型 = 默认值,…): 返回值类型 { }
- 箭头函数:const 函数名(形参 1: 类型 = 默认值, 形参 2:类型 = 默认值,…): 返回值类型 => { }
- 统一定义类型
type Fn = (n1:number,n2:number) => number
const add3 : Fn = (a,b)=>{return a+b }
返回值为 void:const add = (): void => {}
对象类型
1
2
3
4
5
6
7
8
9
10
11
12
13// 创建类型别名
type Person = {
name: string,
age: number
sayHi(): void
}
// 使用类型别名作为对象的类型:
let person: Person = {
name: '小花',
age: 18
sayHi() {}
}接口类型(interface)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// 接口的写法-------------
interface IPerson {
name: string,
age: number
}
const user1:IPerson = {
name: 'a',
age: 20
}
// type的写法-------------
type Person = {
name: string,
age: number
}
const user2:Person = {
name: 'b',
age: 20
}
字面量类型
let str1 = ‘hello TS’ : str1 是一个变量 (let),它的值可以是任意字符串,所以类型为:string
const str2 = ‘hello TS’:str2 是一个常量 (const),它的值不能变化只能是 ‘hello TS’,所以,它的类型为:’hello TS’
any
临时使用 any 来 “避免” 书写很长、很复杂的类型