TypeScript

什么是 TypeScript?

TypeScript,简称 ts,是微软开发的一种静态的编程语言,它是 JavaScript 的超集。
简单来说,js 有的 ts 都有,所有 js 代码都可以在 ts 里面运行。
ts 支持类型支持,ts = type +JavaScript。

类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 数值类型
let age: number = 18

// 字符串类型
let name: string = 'dinghw'

// 布尔类型
let isLoading: boolean = false

// undefined
let un: undefined = undefined

// null
let timer:null = null

// symbol
let id:symbol = Symbol()。

联合类型

也就是说明 b 这个变量既可以是字符串也可以是数字类型

1
const b:string|number=1

类型别名

使用场景:给复杂的类型起个别名

1
2
3
4
type s = string
type n = number
let a: s = '1'
let b: n = 1

数组类型

1
2
const arr:number[]=[1,2,3]
const arrList:Array<number|string>=[1,2,3,'dhw']

对象类型

1
2
3
4
5
6
7
8
9
10
11
//对象类型
type Person={
name:string|number,
age:number,
say():void,
}
const person:Person={
name:"dhw",
age:12,
say(){},
}

函数类型

函数涉及的类型实际上指的是:函数参数和返回值的类型

1
2
3
4
5
6
7
8
9
10
11
12
// 普通函数
function 函数名(形参1: 类型=默认值, 形参2:类型=默认值,...): 返回值类型 { }
// 声明式实际写法:
function add1(num1: number, num2: number): number {
return num1 + num2
}

// 箭头函数
const 函数名(形参1: 类型=默认值, 形参2:类型=默认值, ...): 返回值类型 => { }
const add2 = (a: number =100, b: number = 100): number =>{
return a + b
}

接口

当一个对象类型被多次使用时,有如下两种方式来来描述对象的类型,以达到复用的目的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//接口——interface
interface Person{
name: string,
price: number,
func: ()=>string
}
// 声明接口后,直接使用接口名称作为变量的类型
const man:Person={
name:'dhw',
price:1,
func(){
return '看电视'
}
}
//类型别名——type
type Ren={
name:string|number,
age:number
}
const ding:Ren={
name:"dhw",
age:12
}

接口和类型的区别 interface(接口)和 type(类型别名)的对比

相同点:
1、都可以给对象指定类型
2、都支持扩展,type 通过 & 来扩展,interface 通过 extends 关键字来扩展
不同点:
1、interface 可以声明合并,如果是 type 的话,就会报重复定义的警告,无法实现声明合并。
2、类型别名,不仅可以为对象指定类型,实际上可以为任意类型指定别名

接口继承

如果两个接口之间有相同的属性或方法,可以将公共的属性或方法抽离出来,通过继承来实现复用 语法:

1
2
3
4
5
6
7
8
9
10
11
12
//接口继承
//继承后listB就有了listA的所有属性和方法
interface listA{
a:number,
b:number
}
interface listB extends listA{
c:number
}
let obj:listB={
a:1,b:2,c:3
}

TypeScript
http://example.com/2023/03/10/TypeScript基础/
作者
dinghw
发布于
2023年3月10日
许可协议