TS interface接口

接口可以约束对象、函数、类的结构和类型,是一种必须遵守的契约。

简单来说,接口中可以定义属性和方法,声明属性的类型以及方法的类型。

接口的继承:

interface Shape{
  color: string
}

interface PenStroke{
  width:number
}

// 接口Square继承了Shape和PenStroke两个接口
interface Square extends Shape,PenStroke{
  length:number
}

let square = {}
square.color = 'red'
square.length = 10
square.width = 11
console.log('square.color',square.color)

接口对属性和方法的描述:

interface Counter{
  (start: number): string; // 描述了一个函数,入参是一个number类型的参数,出参是一个string类型的参数,
                            //区别于[propName: string]: string 索引签名的写法
  interval: number;
  reset(start: number):void
}

function getCounter(): Counter{
  let counter =  function (start: number) { } as Counter
  counter.interval = 123
  counter.reset = function () { }
  return counter
}

let ctest = getCounter()
ctest(10)
ctest.reset(1)
ctest.interval = 5

总结:

  • 接口中所有属性不能有实际的值
  • 接口只定义对象的结果,不考虑实际值
  • 在接口中所有的方法都是抽象方法
  • 接口用来定义一个类结构,定义类中有哪些属性和方法,同时接口也可以当成类型声明去使用

你可能感兴趣的:(java,前端,javascript)