TypeScript接口
2015-02-18 15:18
288 查看
1.创建接口
ts:/* function printLabel(labelObj:{label:string}){ alert(labelObj.label);//Hello } var myObj = {label:"Hello"}; printLabel(myObj);*/ interface labelValue{ label:string; } function printLabel(labelObj:labelValue){ alert(labelObj.label);//mm } var myObj = {label:"mm"}; printLabel(myObj);对应js:
function printLabel(labelObj) { alert(labelObj.label); //mm } var myObj = { label: "mm" }; printLabel(myObj);
2.可选属性
ts:interface USB{ name:string; ang:number; sex?:string;//可选参数,可以传,其它必须用 } function printUSB(pu:USB){ alert(pu.age);//2 } var my={name:"mm",age:2}; printUSB(my);对应js:
function printUSB(pu) { alert(pu.age); //2 } var my = { name: "mm", age: 2 }; printUSB(my);
3.函数类型
ts:interface SearchFunc{ (source:string,subString:string):boolean; } var mySearch:SearchFunc; //mySearch = function (source:string,subString:string) { // var result = source.search(subString); mySearch = function (src:string,sub:string) {//类型检查不针对名称,只针对类型 var result = src.search(sub);//search:针对字符串的查询 if(result != -1){ return true; }else{ return false; } }; alert(mySearch("mm","m"));//true对应js:
var mySearch; mySearch = function (src, sub) { var result = src.search(sub); //search:针对字符串的查询 if (result != -1) { return true; } else { return false; } }; alert(mySearch("mm", "m")); //true
4.数组类型
ts:interface StringArray{ [index:number]:string; } var myArray:StringArray; myArray=["m1","m2",""];//string类型 alert(myArray[1]);//m2对应js:
var myArray; myArray = ["m1", "m2", ""]; //string类型 alert(myArray[1]); //m2
5.Class类型
ts:interface ClockInterface{ currentTime:Date; setTime(d:Date); } class Clock implements ClockInterface{ currentTime:Date; setTime(d:Date){ this.currentTime = d; } constructor(h:number,m:number){ } }
对应js:
var Clock = (function () { function Clock(h, m) { } Clock.prototype.setTime = function (d) { this.currentTime = d; }; return Clock; })();
6.接口继承与混合类型
ts:/*接口继承*/ interface Shape{ color:string; } interface PenStroke{ penWidth:number; } interface Square extends Shape,PenStroke{//多继承 sideLength:number; } <strong>var s = <Square>{};//书写格式 </strong>s.color = "blue"; s.sideLength = 10; s.penWidth = 10; /* 混合类型*/ interface Counter{ interval:number; reset():void;//方法 (start:number):string; } var c:Counter; c(10); c.reset();对应js:
var s = {}; //书写格式 s.color = "blue"; s.sideLength = 10; s.penWidth = 10; var c; c(10); c.reset();
相关文章推荐
- TypeScript开发系列(二)——VS让普通工程自动编译TypeScript
- Egret引擎实现多个遮罩
- TypeScript基本数据类型
- TypeScript环境搭建
- ECMAScript 6 模块简介
- TypeScript介绍视频 推荐
- ANGULAR2 摘要(一)
- ionic2 入门
- LayaAir 游戏架构分析
- LayaAir 加载图集资源并播放动画
- TypeScript入门
- typescript中加载img
- TypeScript 模块
- TypeScript 高级类型
- TypeScript 类型兼容
- TypeScript 函数
- TypeScript 接口
- 使用 NPM 发布与维护 TypeScript 模块
- TypeScript 的声明文件的使用与编写
- TypeScript 的两种声明文件写法的区别和根本意义