typeScript面试必备之-通识六:typeScript中的接口

1 属性类接口
2 函数类型接口
3 可索引接口
4 类类型接口
5 接口扩展
复制代码

接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。 typescrip中的接口类似于java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。
1、属性接口
1.1对json的约束

       function printLabel(labelInfo:{label:string}):void {
            console.log('printLabel');
        }
        printLabel('hahah'); //错误写法
        printLabel({name:'张三'});  //错误的写法
        printLabel({label:'张三'});  //正确的写法
复制代码

2、对批量方法传入参数进行约束
接口:行为和动作的规范,对批量方法进行约束
// 属性接口就是传入对象的约束

      interface FullName{
            firstName:string;   //注意;结束
            secondName:string;

        }
        function printName(name:FullName){
            // 必须传入对象  firstName  secondName
            console.log(name.firstName+'--'+name.secondName);
        }
        // printName('1213');  //错误
        var obj={   /*传入的参数必须包含 firstName  secondName*/
            age:20,
            firstName:'张',
            secondName:'三'
        };
        printName(obj)
复制代码

接口 :可选属性使用‘?’号

    interface FullName{
        firstName:string;
        secondName?:string;
    }
    function getName(name:FullName){
        console.log(name)
    }  
    getName({               
        firstName:'firstName'
    })
复制代码

接口的实现案例

3、函数类型接口:对方法传入的参数 以及返回值进行约束 批量约束

interface encrypt {
  (key: string, value: string): string;
}
var md5: encrypt = function (key: string, value: string): string {
  //模拟操作
  return key + value;
}
console.log(md5('name', 'zhangsan'));
var sha1: encrypt = function (key: string, value: string): string {
  //模拟操作
  return key + '----' + value;
}
console.log(sha1('name', 'lisi'));
复制代码

感谢: 参考学习:https://www.itying.com:
自己总结到有道云笔记里面有更加清楚的标注方便查阅:
* Typescript 介绍
http://note.youdao.com/noteshare?id=c3e0d5810580041ade028a345519ce96&sub=E882CE350AC94C5596B146908C406274 * typeScript中的数据类型
http://note.youdao.com/noteshare?id=a07dd9a55779068d9409b79014a9a409&sub=CE3DA74B1A27412792DF9BB8F74E8E24 * typeScript中的函数
http://note.youdao.com/noteshare?id=adc64e95404f3c382c7549f05841c7b2&sub=65D365DE900049A28DD4697B61A5544A * 对象+继承
http://note.youdao.com/noteshare?id=7f82be21375761c13ccad1981510a614&sub=7856743A59934A59A1AA608AA78497F0 * 类的定义、继承、类里面的修饰符 http://note.youdao.com/noteshare?id=a4420ac729d8cc7c1eb72fc47198f00b&sub=399974DBD9FA4EC2A99548D8837CB61F * 静态属性 静态方法 抽象类多态
http://note.youdao.com/noteshare?id=efad91320514e4f21e07ec77a9bcfd7c&sub=DC3868B8459940CA884DC5B80EE25443
* typeScript中的接口
http://note.youdao.com/noteshare?id=ae4c7f13bec8e35b3fda4e326d7e7055&sub=6001FADE75904080A15395886608D366 * 可索引接口(数组,对象)+类类型接口
http://note.youdao.com/noteshare?id=aebf26ab922044a69cae082866ce8d86&sub=F73FB04DD10C4BA796173FBE40280B21
* 接口的继承、接口的扩展
http://note.youdao.com/noteshare?id=93e1dff481b8e299ee9c925e8e3a8b4a&sub=3C96456BFAA34C28BA6BB4E0B0C1E77B * 泛类
http://note.youdao.com/noteshare?id=6d9e0ec4cdb17249bf1bb11fae2e44ec&sub=B0C47B2089AC42E48C2E1BAAAD3FE9EF * 泛型接口
http://note.youdao.com/noteshare?id=49af2ba1bd6173467e7c7b844def959b&sub=F16F0C2857E347C0B8FB69522D5DEFA2

你可能感兴趣的:(typeScript面试必备之-通识六:typeScript中的接口)