本文共 1858 字,大约阅读时间需要 6 分钟。
// 打印标签的函数function printLabel(labelObj:{label:string}) { console.log(labelObj.label);}let myObj = {label:'Hello'};printLabel(myObj);
上述过程就相当于实现了一个接口,label 的类型是string,如果修改成别的,是不允许的
// 用interface关键字 声明一个接口interface LabelVale { label:string;}// 函数的参数是接口类型function printLabel(labelObj: LabelVale) { console.log(labelObj.label);}var myObj = { label:'Hello'}printLabel(myObj);
// 声明一个接口 interface USB { name:string; age:number; color?:string; // 此处加?表示可选参数,可以不传递 } function printUSB(pu: USB) { console.log(pu.name); console.log(pu.age); } // 如果是使用某一类型的接口,那么必须将所有方法或属性都实现,可选的除外 // 如果此处少了name或age中的一个,那么printUSB就是有问题的 var my = { name: 'Joh', age: 90 } printUSB(my);
interface SearchFunc { (source:string, subString:string):boolean;}var mySearch:SearchFunc;mySearch = function(src:string;sub:string) { var res = src.search(sub); return res != -1;}
interface StringArray { [index:number]:string; // 声明一个string类型的数组}var myArray:stringArray;myArray = ['Joh', 'Lily'];console.log(myArray[0]);
interface ClockInterface { currentTime:Date; setTime(d:Date);}class Clock implements ClockInterface { currentTime : Date; constructor(hour:number, minutes:number, second:number) { } setTime(d:Date) { this.currentTime = d; }}
interface Shape { color: string;}interface PenStroke { penWidth:number;}// Square接口继承自Shape和PenStroke, 拥有了接口的所有属性和方法interface Square extends Shape, PenStroke { sideLength:number;}var s ={}s.color = 'blue';s.sideLength = 10;s.penWidth = 10;
// 接口的混合类型创建interface Counter{ interval:number; reset():void; (start:number):string;}// 使用var co : Counter;co(10);co.reset();
转载地址:http://zkwei.baihongyu.com/