【TypeScript】接口

接口说明

接口是对象的状态(属性)和行为(方法)的抽象(描述),简单理解就是 规范结构,接口不能初始化属性

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'));

类 接口

作用于 JavaC# 里面一样,类需要实现接口

 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 吃玉米
发表评论 / Comment

用心评论~