Typescript 中的接口定义,属性类型接口,函数类型接口,可索引接口,类类型接口

// ts中的接口: 对批量方法传入参数进行约束,

// 接口:行为和动作的规范,对批量方法进行约束

// 基本接口
interface FullName{ 
  firstName: string;
  secondName: string;
}
function printName(name: FullName) {
  // 必须传入对象 firstName, secondName
  console.log(name.firstName+'---'+name.secondName);
}
//  调用方法:如果参数单独定义,可以写上多余的参数,如下
var obj = {age:99,firstName:"张",secondName:"易得"}
printName(obj);
// 如果是直接写在方法里,所写的参数必须和接口的参数一致
printName({ firstName: '刘', secondName: "邦" });

属性类型接口:可选属性; 就是在接口中的属性后面加问号;这样,调用方法的时候,加问号的参数可以不用传

interface FullName { 
  firstName: string;
  secondName?: string;
}
function getName(name: FullName) { 
  console.log(name); 
}
getName({firstName:"赵明诚"});

// 函数类型接口:对方法传入的参数,以及返回值进行约束

interface encrypt { 
  (key: string, value: string): string;
}
var md5: encrypt = function (key: string, value: string): string { 
  return `${key}===${value}`
}
console.log(md5('name','张三'))

// 可索引接口:对数组,对象的约束 

// 可索引接口:对数组,对象的约束
interface UserArr { 
  [index: number]: string;
}
var arra: UserArr = ["1", "8", "9"];
console.log(arra);
interface Person { 
  [index: string]: string;
}
var u: Person = { name: "张三", age: "565" }
console.log(u);

// 类类型接口:对类的约束,和抽象类类似 

// 类类型接口:对类的约束,和抽象类类似
interface Animal { 
  name: string;
  eat(foot: string): void;
}
class Tiger implements Animal { 
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  eat(foot: string):void { 
    console.log(`${this.name}在吃${foot}`);
  }
}
var t = new Tiger("老虎")
t.eat("鲜肉")

 

### 回答1: 在 TypeScript 接口是一种用于对对象的形状(shape)进行约束的型。它可以帮助你在开发过程确保对象具有某些必要的属性和方法。 例如,如果你想要编写一个函数,该函数接受一个对象作为参数,你可以使用接口来约束该对象必须具有某些属性或方法: ``` interface Point { x: number; y: number; distance(p: Point): number; } function printDistance(p: Point) { console.log(p.distance(p)); } const p1: Point = { x: 0, y: 0, distance: (p: Point) => Math.sqrt(p.x ** 2 + p.y ** 2) }; printDistance(p1); // 0 ``` 在这个例子,我们定义了一个 `Point` 接口,该接口包含两个数值属性 `x` 和 `y` 以及一个名为 `distance` 的方法。我们在函数 `printDistance` 使用了这个接口,表示它接受的参数必须是一个具有 `x`、`y` 和 `distance` 方法的对象。 接口可以用于约束的实例的形状,也可以用于约束函数的参数或返回值的形状。它还可以用于继承,使得一个接口可以从另一个接口继承属性和方法。 ### 回答2: TypeScript接口是一种用于定义对象的结构和行为的语法规范。在TypeScript接口被用来描述一个对象的属性和方法的型,以及对象之间的关系。 使用接口可以实现型检查,避免在代码犯错。通过接口,我们可以规范对象的属性必须遵循的型,以及对象的方法的输入参数和返回值型。 接口可以通过关键字`interface`来定义,例如: ```typescript interface Person { name: string; age: number; sayHello: () => void; } const person: Person = { name: "Alice", age: 25, sayHello: () => console.log("Hello!") }; ``` 在上述代码,我们定义了一个名为`Person`的接口,它有三个属性:`name`是一个字符串型,`age`是一个数字型,`sayHello`是一个没有参数和返回值的函数。然后我们创建了一个符合这个接口的`person`对象。 接口还可以用于定义函数型: ```typescript interface AddFunc { (num1: number, num2: number): number; } const add: AddFunc = (num1, num2) => num1 + num2; ``` 在上述代码,我们定义了一个名为`AddFunc`的接口,它描述了一个有两个参数都是数字型,返回值也是数字型的函数型。然后我们创建了一个符合这个接口的`add`函数接口还可以用于描述的结构: ```typescript interface Animal { name: string; age: number; eat(food: string): void; } class Dog implements Animal { name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } eat(food: string) { console.log(`${this.name} is eating ${food}.`); } } const dog = new Dog("Bobby", 3); dog.eat("bone"); ``` 在上述代码,我们定义了一个名为`Animal`的接口,它描述了一个有`name`和`age`属性,并且有一个接受一个字符串参数的`eat`方法的。然后我们创建了一个`Dog`,该实现了`Animal`接口的要求。我们通过创建一个`dog`实例,调用`eat`方法来实现的行为。 总之,TypeScript接口是一种强大的工具,用于定义对象的结构和行为的规范,通过型检查可以提高代码的可靠性和可维护性。 ### 回答3: TypeScript接口是一种用于定义对象的形状和结构的语法,似于定义一个契约或合同。它用于描述对象的属性、方法和索引等。 通过使用接口,我们可以明确指定一个对象应具有哪些属性和方法。这样,在编写代码时,我们就可以根据接口的定义来确定对象的结构和属性是否正确。 接口可以起到型检查的作用,当我们定义一个对象符合某个接口的结构时,代码编辑器会提示我们对象是否有缺失的属性或不需要的属性接口也可以进行继承,一个接口可以继承另一个接口属性和方法。这样可以更加灵活地设计接口的层次结构,提高代码的复用性。 与一样,我们可以使用接口来定义变量、参数和函数的形状。在型推断或者函数重载等场景接口能够帮助我们更加准确地描述各种型之间的关系。 总之,TypeScript接口是一种非常有用的工具,它能够帮助我们提高代码的可读性和可维护性,减少错误发生的概率。它是一种在开发过程非常常用的语法,有助于提高开发效率和代码质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值