TS中的接口
Posted 青袂婉梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TS中的接口相关的知识,希望对你有一定的参考价值。
1.属性接口
ts中定义接口 interface //下文接口定义以及使用
//接口批量约束
interface FullName{
firstName:string;
lastName:string;
}
function prinone(name:FullName){
//必须传入对象 firstName lastName
console.log(name.firstName,name.lastName)
}
var obj = { //传入的必须包含 firstName lastName
age:26,
firstName:'zhang',
lastName'san'
}
prinone(obj)
接口 可选属性
interface FullName{
firstName:string;
lastName?:string;
}
function getName(name:FullName){
console.log(name)
}
//参数的书序可以不一样
getName({
firstName:'zhang',
})
2.函数类型接口
//对方法传入的参数 以及返回值进行约束 //批量约束
//加密的函数类型接口
interface encrypt{
(key:string,val:string):string
}
var md5:encrypt = function(key:string,val:string):string{
//模拟操作
return key+val
}
console.log(md5('zhang','san'))
//其他方法也可调用
var arr:encrypt = fuction(key:string,val:string):string{
return key+val
}
console.log(md5('li','si'))
3.可索引接口
//数组 对象的约束 (不常用)
interface userArray{
[index:number]:string
}
var arr:userArray = ['aa','bb']
console.log(arr[0])
4.类类型接口
//对类的约束 和抽象类有点相似
interface Animal{
name:string;
eat(str:string):void;
}
class Dog implements Animal{
name:string;
constructor(name:string){
this.name = name
}
eat(){
console.log(this.name+'你好')
}
}
var d = new Dog('小白')
d.eat()
5.接口扩展
//接口可以继承接口
interface Animal{
eat():void;
}
interface Person extends Animal{
work():void;
}
class Web implements Person{
public name:string
constructor(name:string){
this.name = name
}
eat(){
console.log(this.name+'喜欢你')
}
work(){
console.log(this.name+'写代码')
}
}
var a = new Web('小雷')
w.work();
w.eat();
以上是关于TS中的接口的主要内容,如果未能解决你的问题,请参考以下文章
已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段