ts接口 函数类型接口,可索引类型接口,类类型接口(基本使用)

151 阅读1分钟

用于函数函数里面传入对象(传入对象的约束) 关键字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  类继承要写在前面