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

ゞ 浴缸里的玫瑰 2022-10-25 04:39 361阅读 0赞

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

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

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

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

  1. interface FullName {
  2. firstName: string;
  3. secondName?: string;
  4. }
  5. function getName(name: FullName) {
  6. console.log(name);
  7. }
  8. getName({firstName:"赵明诚"});

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

  1. interface encrypt {
  2. (key: string, value: string): string;
  3. }
  4. var md5: encrypt = function (key: string, value: string): string {
  5. return `${key}===${value}`
  6. }
  7. console.log(md5('name','张三'))

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

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

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

  1. // 类类型接口:对类的约束,和抽象类类似
  2. interface Animal {
  3. name: string;
  4. eat(foot: string): void;
  5. }
  6. class Tiger implements Animal {
  7. name: string;
  8. constructor(name: string) {
  9. this.name = name;
  10. }
  11. eat(foot: string):void {
  12. console.log(`${this.name}在吃${foot}`);
  13. }
  14. }
  15. var t = new Tiger("老虎")
  16. t.eat("鲜肉")

发表评论

表情:
评论列表 (有 0 条评论,361人围观)

还没有评论,来说两句吧...

相关阅读