ts之interface

247 阅读1分钟

interface

undefined 是所有类型的子集 枚举类型,指定特定的数据类型

enum Sport {
 basketball="1",
 football=2
}
let a:Sport=Sport.football
console.log(a);

断言 as 主观的认为是某种类型。

interface 规定某个对象必须具有特定的类型

如何用interface声明 函数里面有一个函数

interface Calculator {
    (a: number, b: number): number
    minus(a: number, b: number): number
}

let add: Calculator = (
    (): Calculator => {
        let x: any = function (a: number, b: number) {
            return a + b;
        }
        x.minus = function (a: number, b: number) {
            return a - b;
        }
        return x
    }
)()

索引签名

在js中一个对象或者属性必须是string或者number.虽然没有明确说明,但是发生了隐式转换

let a:{
    // name 是一个字符串
    name:'1'
}

继承 extends

  1. 一个interface 可以继承多个接口,也可以继承 链式接口 链式继承,继承一个有继承接口的接口
interface 有机物 {
    c:string,
    h:string,
    o:string
}

interface Human extends 有机物 {
    name:string,
    age:number
}
interface Male extends Human {
    mustache:boolean
}

let 张三:Male={
    name: "张三",
    age: 0,
    c: "1",
    h: "2",
    o: "4",
    mustache: false
}
  1. 继承多个接口
interface Male extends Human,有机物 {
    mustache:boolean
}

let 张三:Male={
    name: "张三",
    age: 0,
    c: "1",
    h: "2",
    o: "4",
    mustache: false
}

对于ts的配置进行学习 tsconfig