1. 接口就是一种规范,一种约束
  1. class Dog{
  2. eat(){
  3. console.log("骨头")
  4. }
  5. run(){
  6. console.log("狗跑步")
  7. }
  8. }
  9. class Cat{
  10. eat(){
  11. console.log("鱼")
  12. }
  13. run(){
  14. console.log("猫跑")
  15. }
  16. }
  17. //只要是动物类都需要实现eat() run();

1-1 类类型接口

对类的约束

  1. /* 类类型接口 */
  2. interface Animal{
  3. eat():void;
  4. run():void;
  5. }
  6. /* 接口就是一套规范,当很多的类型具有相同的特征或者属性,我们可以将这些特征属性单独抽离成一个接口,
  7. 让这些类对接口(规范)进行实现
  8. */
  9. class Dog implements Animal{
  10. eat(): void {
  11. console.log("骨头")
  12. }
  13. run(): void {
  14. console.log("狗跑")
  15. }
  16. }
  17. class Cat implements Animal{
  18. eat(): void {
  19. console.log("鱼")
  20. }
  21. run(): void {
  22. console.log("猫跑")
  23. }
  24. }

1-2 属性接口

  1. /* 属性接口:对方法的参数的约束 */
  2. interface Params{
  3. url:string,
  4. method:string,
  5. /* ?这个属性可以有也可以没有 */
  6. data?:Object
  7. }
  8. function http(d:Params):void{
  9. console.log(d);
  10. }
  11. http({
  12. url:"top250",
  13. method:"get"
  14. })
  15. http({
  16. url:"login",
  17. method:"post",
  18. data:{
  19. username:"lisi",
  20. pwd:123
  21. }
  22. })

1-3 函数类型接口

  1. interface encrypt{
  2. /* 设置函数的参数和返回值的类型 */
  3. (key:string,value:string):string;
  4. }
  5. var md5:encrypt = function(key:string,value:string):string{
  6. return key+value;
  7. }
  8. console.log(md5("key","lisi"))

1-4 接口的继承

  1. interface Animal{
  2. name:string;
  3. age:number;
  4. }
  5. interface Dog extends Animal{
  6. eat(str:string):void;
  7. }
  8. class WolfDog implements Dog{
  9. name: string;
  10. age:number;
  11. eat(str: string): void {
  12. console.log(str);
  13. }
  14. constructor(name:string,age:number){
  15. this.name = name;
  16. this.age = age;
  17. }
  18. }
  19. var w:WolfDog = new WolfDog("狗",8);