美文网首页
05. typescript接口

05. typescript接口

作者: DDLH | 来源:发表于2019-11-15 17:00 被阅读0次

// 接口 行为动作的约束

// 1. 属性类接口

interface FullName{
    
    firstName:string; //分号结束

    secondName:string; 

    sex?:string;     //可选参数
}

function printName(name:FullName){

    console.log(name.firstName + '----' + name.secondName)
}

var obj = {
    // age: 20,
    firstName: '张',
    secondName: '三',
    sex: '男'        
}

console.warn('属性类接口');

printName(obj)


//【案例1】ajax接口  start
interface Config{
    type:string;
    url:string;
    data?:string;
    dataType:string;
}

//原生js封装的ajax 
function ajax(config:Config){

var 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('chengong');


            if(config.dataType=='json'){

                console.log(JSON.parse(xhr.responseText));
            }else{
                console.log(xhr.responseText)

            }


        }
}
}


ajax({
    type:'get',
    data:'name=zhangsan',
    url:'http://a.itying.com/api/productlist', //api
    dataType:'json'
})

// end

// 2. 函数类型接口:对传入的参数以及返回值类型做约束

// 加密的函数类型接口

interface encrypt{
    (key:string,value:string):string;
}


var md5:encrypt=function(key:string,value:string):string{
        //模拟操作
        return key+value;
}

console.warn('函数类型接口');
 
console.log(md5('name','zhangsan'));



var sha1:encrypt=function(key:string,value:string):string{

    //模拟操作
    return key+'----'+value;
}

console.log(sha1('name','lisi'));

// 3. 可索引接口:数组、对象的约束

    //ts定义数组的方式
    
    // var arr:number[]=[2342,235325]


    // var arr1:Array<string>=['111','222']
    

    //可索引接口 对数组的约束
            interface UserArr{
                [index:number]:string
            }


            var arr:UserArr=['aaa','bbb'];

            console.log(arr[0]);

            // var arr:UserArr=[123,'bbb'];  /*错误*/



    //可索引接口 对对象的约束

        interface UserObj{

            [index:string]:string
        }


        var ob:UserObj={name:'张三'};

// 4. 类类型接口: 对类的约束

console.warn('对类的约束');

interface Animal6{
    name:string;
    eat(str:string):void;
}

class Dog2 implements Animal6{

    name:string;
    constructor(name:string){

        this.name=name;

    }
    eat(){

        console.log(this.name+'吃粮食')
    }
}


var d2=new Dog2('小黑');
d2.eat();


class Cat6 implements Animal6{
    name:string;
    constructor(name:string){

        this.name=name;

    }
    eat(food:string){

        console.log(this.name+'吃'+food);
    }
}

var c6=new Cat6('小花');
c6.eat('老鼠');

// 接口的扩展:接口可以继承
console.warn('接口的扩展:接口可以继承');

interface Animal7{

    eat():void;
}

interface Person7 extends Animal7{

    work():void;
}

class Web7 implements Person7{

    public name:string;
    constructor(name:string){
        this.name=name;
    }

    eat(){

        console.log(this.name+'喜欢吃馒头')
    }
    work(){     // 实现一个接口,必须实现接口中的所有方法。

        console.log(this.name+'写代码');
    }
    
}

var w7=new Web7('小李');

w7.eat();












// interface Animal7{

//     eat():void;
// }

// interface Person7 extends Animal7{

//     work():void;
// }


// class Programmer7{

//     public name:string;
//     constructor(name:string){
//         this.name=name;
//     }
    
//     coding(code:string){

//         console.log(this.name+code)
//     }
// }


// class Web7 extends Programmer7 implements Person7{
    
//     constructor(name:string){
//        super(name)
//     }
//     eat(){

//         console.log(this.name+'喜欢吃馒头')
//     }
//     work(){

//         console.log(this.name+'写代码');
//     }
    
// }

// var w7=new Web7('小李');

// w7.eat();

// w7.coding('写ts代码');

相关文章

  • 05. typescript接口

    // 接口 行为动作的约束 // 1. 属性类接口 // 2. 函数类型接口:对传入的参数以及返回值类型做约束 /...

  • TypeScript 中的接口(interface)

    TypeScript 中的接口可分为: 之前的文章 TypeScript 基础类型和接口(interface)里面...

  • 学习TypeScript 接口

    TypeScript 接口定义 interface interface_name {} 实例 联合类型和接口 接口...

  • TypeScript学习笔记之四接口(Inferfaces)

    一、使用环境 Mac 电脑 WebStorm TypeScript3.x版本 二、接口 在 TypeScript ...

  • TypeScript - 接口

    TypeScript - 接口( Interface) [TOC] 学习目标 理解接口的概念 学会通过接口标注复杂...

  • TypeScript 接口

    TypeScript接口 接口只读属性 使用关键字readonly定义只读的接口属性 出现错误,如下 创建不可修改...

  • TypeScript接口

    属性类型接口 函数类型接口 定义了函数的参数。包括入参和出参。 可索引类型接口 类类型接口

  • typescript 接口

    日期:2019 年 8 月 29 日 typescript 接口 介绍 TypeScript的核心原则之一是对值所...

  • TypeScript接口

    接口定义 类型检查器不会检查属性的顺序,只要相应的属性存在并且类型匹配即可。 可选属性 定义可选属性只需要在属性后...

  • TypeScript——接口

    TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”...

网友评论

      本文标题:05. typescript接口

      本文链接:https://www.haomeiwen.com/subject/atysictx.html