我是靠谱客的博主 健康学姐,最近开发中收集的这篇文章主要介绍接口的基本使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

TypeScript------接口的使用

接口,一般用于声明类型,用于对复杂的数据结构进行类型描述比如对象和函数以及类

接口的基本使用

接口声明需要使用interface关键字

使用接口约束对象的类型

interface User{
name:string;
age:number;
}
const user:User = {
name:'张三';
age:20;
};

使用接口约束函数类型

interface Sum{
(a:number.m:number):number;
}
const sun:Sum = function(a.b){
return a+b;
};

使用接口约束类的成员

interface Person {
name:string;
addEvent():void;
removeEvent():void;
}
class NewPerson implements Person{
name:string = 'test';
addEvent():void{}
removeEvent():void{
}
}
宽松的接口检查

TypeScript 接口检查时宽松的, 当变量满足了接口规范以后,几十遍了中存在接口范围以外的属性也是可以的。

interface User{
name:string;
age:number;
}
let user:User = {
name:'张三',
age:20,
};
let someone = {
name:'李四',
age:50,
sex:'男',
};
user = someone;
interface Reportable{
summary():void;
}
function printSummary(item:Reportable):void{
item.summary()
}
const person = {
name:'张三',
summary(){
console.log(`hello,my name is ${this.name}`);
},
};
printSummary(person);

对于宽松的接口检查政策字面量是个例外,也就是说对于字面量的接口类型检查还是严格的,不能出现接口以外的其他属性。

interface User {
name:string;
age:number;
}
const user : User = {name:'张三',age:20};
const another : User = {name:'李四',age:40,sex:'男'}//此处会报错,因为接口内没有sex
interface Reportable{
summary():void;
}
function printSummary(item:Reportable):void{
item.summary();
}
printSummary({
name:'张三',
//此处会报错,name 不在类型Reportable中,对象字面量只能指定已知属性
summary(){
console.log(`hello,my name is ${this.name}`)
},
});

绕过严格类型检查模式:

  • 类型断言
interface User{
name:string;
age:number;
}
const another : User = {name:'李四',age:40,sex:'男'} as User;
  • 索引签名
interface User{
name:string;
age:number;
[key:string]:string | number;
}
const another : User = {name:'李四',age:40,sex:'男'}
接口继承

接口具有继承特性 接口与接口直接可以存在继承关系,而且一个接口可以继承多个接口

interface Sizes{
sizes:string[];
getSize():string[];
}
interface Shape{
color:string;
}
//Pizza 继承了两个接口,Sizes 以及 Shape
interface Pizza extends Sizes,Shap{
name:string;
}
let pizza:Pizza = {
name:'张三',
color:'skyblue',
sizes:['large','small'],
getSize(){
return this.sizes;
},
};

在继承了接口以后可以对被继承接口中的属性进行重写,但是重写的类型一定要在原有类型的范围以内。

interface User{
name:any;
age:number;
}
interface MyUser extends User{
name:bollean;
}
接口合并

接口具有声明合并特性 多个相同名称接口会自动合并

interface User {
height:number;
width:number;
}
interface User{
scale:number;
}
let user:User = {height:5,width:6,scale:10};

最后

以上就是健康学姐为你收集整理的接口的基本使用的全部内容,希望文章能够帮你解决接口的基本使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部