1.接口
编辑
let person: { name: string; age: number; sayHi(): void} = {
name: '刘老师',
age: 18,
sayHi() { }
}
//重复的结构又写一次
let person1: { name: string; age: number; sayHi(): void } = {
name: '刘老师',
age: 18,
sayHi() { }
}
2.接口与类型别名的对比
编辑
//使用接口:只能为对象指定类型
interface IPerson{
name: string
age: number
sayHi(): void
}
let person3: IPerson = {
name: '刘老师',
age: 18,
sayHi() { }
}
let person4: IPerson = {
name: 'llaa',
age: 22,
sayHi() { }
}
//使用类型别名:相当于在声明变量--不仅可以为对象指定类型,实际上可以为任意类型指定别名
type IPerson1= {
name: string
age: number
sayHi(): void
}
let person5: IPerson = {
name: '刘老师',
age: 18,
sayHi() { }
}
type NumStr = number|string
3.接口继承
编辑
编辑
//接口继承:两个接口之间有相同的属性或方法,将公共的属性或方法抽离出来,通过继承来实现复用
interface Point2D{x:number;y:number}
//interface Point3D { x: number; y: number;z:number}
interface Point3D extends Point2D{
z:number
}
let p3:Point3D={
x:1,
y:0,
z:0
}
4.元组
编辑
//数组:可以出现任意多个数字
let position:number[]=[39,114,1,3,4]
//元组:确切地知道包含多少个元素,以及特定索引对应的类型
let position1:[number,number]=[25,36]