用于函数函数里面传入对象(传入对象的约束) 关键字interface
基本用法
interface obj {
firstName: string;
lastName?: number; //加问号 可选 可选可不选
}
function fn1(name: obj) {
console.log(name);
}
//调用时 如果直接传入对象而不是一个变量,那么就只能有的定义的两个参数,否则报错
//fn1({
//firstName: "小白呀",
//lastName: 222,
//});
建议声明变量之后调用(包含,不仅有)
let pp = {
firstName: "小白呀",
lastName: 222,
age: "nianlingya ",
};
fn1(pp);
函数类型接口(函数的方法传入,返回值的约束)
基本用法
interface person {
(name: string, age?: number): string;
// 括号里是对参数的约束 后面跟着对函数返回类型的约束
}
let person1: person = function (name: string, age?: number): string {
return "年龄:" + age + "姓名:" + name;
};
console.log(person1("小白"));
可索引接口(数组,对象的约束 ) 对数组 index 要是number 对对象index要是string
//对数组的约束
interface userarr{
[index:number]:string;
}
let arr1:userarr= ["888","898"]
// 对对象的约束
interface userarr{
[index:string]:string;
}
let arr1:userarr={name:"小北"}
类类型接口约束 比较常用:对类的约束
关键字:implements
interface Clas{
name:string;
eat(name:string):number | string | void
)
class Person implements Clas{
name:string
eat(s:string){
retrun s
}
constructor(n:string){
this.name = name
}
}
let p =new Person('小白')
//如上所示 如果有类继承了person类 那么语法是
//class xb extends Person implements Clas 类继承要写在前面