TypeScript 接口及其常见使用

什么是ts的接口?

  • 作为对象的类型使用,限定或者约束该对象中的属性数据;
interface IPerson{
	name: string,
	age: number,
	sex: string,
}
let person: IPerson{
	name: 'xxxxx',
	age: 0,
	sex: 'man',
}

接口和对象中的属性必须一一对应,否则会报错

只读类型:readonly

interface IPerson{
	readonly name: string,
}
let person: IPerson{
	name: 'myName',
}
person.name = 'newName' // 报错,因为只读

可有可无类型:?

interface IPerson{
	name?: string, // 可有可无类型,当person对象无name属性的时候也不会报错
}
let person: IPerson{
	// 为空
}
person.name = 'newName' // ‘newName’

函数类型: (函数参数): 返回值

interface IFunction{
	(name: string, age: number): boolean // 括号里的数函数参数,后面为函数返回值
}
let newFunction: IFunction = function (name: string, age: number): boolean {
	// 括号里的数函数参数,后面为函数返回值	
	return age > 1
}
console.log(newFunction(('myName', 2)), // true

接口继承接口: extends

  • 定义一个接口myHobby 可以继承其他接口的内容,使用extends
interface IRunning{
	run(): void
}
interface ISwimming{
	swimming(): any
}
interface myHobby extends IRunning, ISwimming {}

类class 类型:implements

  • 类可以通过接口的方式,来定义当前这个类的类型;
  • 使用implements 关键字来实现;
interface IRunning{
	run(): void
}
interface ISwimming{
	swimming(): any
}
interface myHobby extends IRunning, ISwimming {}

class MyClass implements myHobby {
	run(){
		console.log('我可以跑....')
	},
	swimming(){
		console.log('我可以游泳')
	}
}
let myObj = new MyClass()
myObj.run()
myObj.swimming()

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