typescript学习之旅----typescript中的接口

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

定义标准。

*/

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

/*
ts中定义方法传入参数
function printLabel(label:string):void {
    console.log('printLabel');
}
printLabel('hahah');
*/

/*
ts中自定义方法传入参数,对json进行约束

*/

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

//对批量方法传入参数进行约束。


//接口:行为和动作的规范,对批量方法进行约束
//就是传入对象的约束    属性接口
//  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 printName(name:FullName){
//     // 必须传入对象  firstName  secondName
//     console.log(name.firstName+'--'+name.secondName);
// }
// function printInfo(info:FullName){
//     // 必须传入对象  firstName  secondName
//     console.log(info.firstName+info.secondName);
// }

// var obj={   /*传入的参数必须包含 firstName  secondName*/
//     age:20,
//     firstName:'张',
//     secondName:'三'
// };
// printName(obj);
// printInfo({
//     firstName:'李',
//     secondName:'四'
// })

//接口 :可选属性
// interface FullName{

//     firstName:string;
//     secondName:string;
// }

// function getName(name:FullName){

//     console.log(name)
// }
// //参数的顺序可以不一样
// getName({        
//     secondName:'secondName',
//     firstName:'firstName'
// })   

// interface FullName{
//     firstName:string;
//     secondName?:string;
// }

// function getName(name:FullName){
//     console.log(name)
// }  
// getName({               
//     firstName:'firstName'
// })

/*
$.ajax({
      type: "GET",
      url: "test.json",
      data: {username:$("#username").val(), content:$("#content").val()},
      dataType: "json"             
  });  
*/

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑞朋哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值