接口

接口: 行为和动作的标准,对批量办法进行束缚

属性接口

传入对象的束缚

// 惯例的属性束缚function printLabel(label: string):void {}printLabel('label字符串')function printLabel2(labelInfo: {label: string}):void {}printLabel2({label: 'label字符串'})
// 应用接口interface FullName {    firstName: string;    secondName: string;}function getName(name: FullName):void {    console.log(name.firstName) // z     console.log(name.secondName) // y }getName({firstName: 'z', secondName: 'y'})

可选属性接口

interface FullName2 {    firstName: string;    secondName?: string; // 可选属性}function getName2(name: FullName2):void {    console.log(name.firstName) // z }getName2({firstName: 'z'})

封装ajax

interface Config {    type: string;    url: string;    data?: string;    dataType: string;}function ajax (config: Config) {    let xhr = new XMLHttpRequest()    xhr.open(config.type, config.url, true)    xhr.send(config.data)    xhr.onreadystatechange = function () {        if (xhr.readyState == 4 && xhr.status == 200) {            console.log('success')        }    }}ajax({    type: 'get',    url: 'http//:www.baidu.com/',    dataType: 'json'})

函数类型接口

函数类型接口 对办法传入的参数 以及 返回值进行束缚 批量束缚

interface Encrypt {  (key: string, value: string): string}let md5:Encrypt = function (key: string, value: string):string {    return key + 'is' + value}console.log(md5('name', 'zy')) // nameiszy

可索引接口(不罕用)

// 可索引接口对数组的束缚interface UserArr {    [index: number]: string}var arr:UserArr = ['zy', 'is']// 可索引接口对对象的束缚interface UserArr2 {    [index: string]: string // 索引和值的类型都是string}var arr2:UserArr2 = {age: '23'}

类类型接口

interface Animal2 {    name: string;    run(str:string):void;}class Dog implements Animal2 {    name: string;    constructor (name: string) {        this.name = name    }    run(str: string): void {        console.log(`${this.name} is ${str}`) // xiaohei is run    }}let dog = new Dog('xiaohei')dog.run('run')