接口说明
接口是
对象的状态
(属性)和行为
(方法)的抽象
(描述),简单理解就是规范结构
,接口不能初始化
属性
TypeScript 的核心原则之一
是对值所具有的结构进行类型检查
。我们使用接口(Interfaces)来定义对象的类型
。
接口结构
结构关键字
interface
interface IPersion{ id: number name: string age: string } const person: IPersion = { id: 1, name: 'o_o', age: 14 };
可选属性
interface IPersion{ id: number name: string age?: string // 该属性可以不存在 } const person: IPersion = { id: 1, name: 'o_o'};
只读属性
关键字
readonly
该值只能在初始化时
被改变
,除此之外不能被改变
interface IPersion { id: number readonly name: string // 只读 age?: number } let person: IPersion = { id: 1, name: 'o_o'}; person.id = 2; // person.name = '*_*'; // 报错 不呢被改变
readonly vs const
readonly 修饰属性
const 修饰变量
接口 规范 函数类型
看着可能有点奇怪,这里明确一个概念,函数的必要元素:
参数列表
、返回值
。(匿名没有函数名,所以函数名非必要)
// 定义 函数类型 interface IFunType { // 参数列表: 返回值 (s1: string, s2: string): string } // 变量类型为 函数 let fun: IFunType = function (s1: string, s2: string): string { return `${s1}_${s2}` } console.log(fun('kk', 'xx'));
类 接口
作用于
Java
、C#
里面一样,类需要实现接口
interface IAnimal { type: string eat(): void } class Cat implements IAnimal { type: string = '猫' eat(){ console.log(`${this.type} 吃 ${this.type}粮`) } } let cat: Cat = new Cat(); cat.eat()
接口 继承 接口
接口 间叫 继承
interface IAnimal { // 动物接口 type: string eat(): void } interface IFelidae extends IAnimal { // 猫科接口 继承 动物接口 leg_num: number }
类 实现多个接口
interface IAnimal { // 动物接口 type: string eat(): void } interface IPerson { name: string age: number } class Person implements IAnimal, IPerson { type: string = 'person' name: string age: number eat(){ console.log(`${this.type} 吃玉米`) } } let person: Person = new Person(); person.eat() // person 吃玉米
版权声明:《 【TypeScript】接口 》为明妃原创文章,转载请注明出处!
最后编辑:2022-3-10 07:03:54