typescript接口

一,前言

1.在typescript中接口可用于表示javascript的对象类型

二,接口定义

1.接口用关键字interface定义,描述了对象的形状,通常对象名称首字母大写

interface Family {
	father:string,
	mother:string,
	i:string
}

三,接口属性

1.接口属性可分为,必需属性可选属性任意属性可读属性4种

2.必需属性为直接声明的属性

interface Family {
	father:string,
	mother:string,
	i:string
}

3.可选属性使用?表示,在实现这个接口时,不一定要这个属性

interface Family {
	father:string,
	mother:string,
	i:string
	pet?:string
}

4.任意属性允许一个接口有任意的属性

interface Family {
	father:string,
	mother:string,
	i:string,
	pet?:string,
	[key:string]:string
}

5.只读属性,使用readonly表示,只要在定义时赋值,不能被修改

interface Family {
   father:string,
   mother:string,
   i:string,
   pet?:string,
   [propName:string]:string,
   readonly id:string
}

6.索引签名的方式可以帮助我们定义一些灵活、动态的对象类型,是在 TypeScript 中定义不确定属性的对象类型的常用方法之一

interface Option {
  [key: string]: any
}

5.注意事项:
(1)一个接口实现的变量,一定要含有必需属性
(2)可以含有也可以不含有可选属性
(3)当含有任意属性时,其他属性的值类型一定是任意属性的子集
(4)一个接口只能有一个任意属性,如果接口中有多个类型的属性,则可以在任意属性中使用联合类型
(5)只读属性只能在创建的时候被赋值

四,接口继承

1.在ts中,接口可以使用关键字extends继承另一个接口,继承后的接口拥有自己独有的属性和继承接口的属性

interface Animal {
  name: string;
  age: number;
  eat(food: string): void;
}

interface Dog extends Animal {
  breed: string;
  bark(): void;
}

五,接口变量

1.使用接口定义变量时,变量的形状必须和接口的形状保持一致,不可增加多余的属性,也不可以少属性

interface Family {
	father:string,
	mother:string,
	i:string
	pet?:string
}

let lilysHome:Family ={
	father:'tom',
	mother:'marry',
	i:'lily',
}

六,注意事项

1.注意接口不能设置默认值

2.注意,对于一个可选属性,在操作时一定要判断是否存在,当不存在时返回的是undefined,对于对原本属性的一些操作,用在undefined上可能会报错

你可能感兴趣的:(typescript,typescript,javascript,前端)