码迷,mamicode.com
首页 > 其他好文 > 详细

typescript 第二部分

时间:2019-07-16 18:50:46      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:实参   function   animal   修饰符   var   nim   注意   部分   ==   

  ts 中不允许变量同名

  函数定义的两种方式

  第一种:命名函数 = 声明式定义

    function fn(){}

  第二种:匿名函数

    var fn = function(){}

  function fn(x:string,y:string):string{  // x:string 这里指 变量x 的数据类型  y:string 这里是 变量y 的数据类型  ():string 这里指 函数return 的数据类型

    return  " hello world "

  }

  var fn=function(x:string,y:string):string{  // 与上面的解释一致

    return "hello world"

  }

  约束函数

  var sf:(x:string,y:string)=>string=function(a:string,b:string):string{

    return "hello"

  }

  可选参数 :使用 ?来实现可选参数的功能,可选参数一定要放后面

  function fn(x:string,y?:string):string{

    return "hello"

  }

  fn("hello","world")   fn("hello")   // 这两种写法都不会报错 

  默认参数:使用 = 给参数赋值

  function fn(x:string,y:string="hello"):string{

    return y;

  }

  fn("world")  // = 给参数一个默认值

  ... 运算符:如果不确定传参的个数,我们可以用 ... 运算符来表示,且还会将元素转化成数组

    function fn(...res):number{

      console.log(res)

    }

    fn(12,24,36,48,60,72,84,96);  

  函数重载

    在 js 里面不存在函数重载,但是有函数重写

  函数重载的定义:函数名相同,跟据参数类型决定,使用哪个函数

  函数重写:在 js 中,因为一旦函数名相同,后者会将前者覆盖

  function fn(x){}  // 像这里,我们没有指定数据类型,他会默认数据类型为 any (任何类型),但是 一般情况下 还是要加的

  ts重载  案例:

    定义两个函数的数据类型,没有实现他的功能

    function fn(x:number):number;

    function fn(x:string):string;

    function fn(x):any{

      return x

    } 

    fn(12) / fn("hello")  // 这个案例是一个简单的写法  主要是看实参传递什么样的格式,以便正常的返回什么样的数据类型

    ts 函数重载:定义一个函数的数据类型,函数会进行重载

  原生 js 伪实现一个重载的案例:

    function fn(x){

      if(typeof x == "string"){

        console.log("string")

      }

      else if (typeof x == "number"){

        console.log("number")

      }

    }

    fn(12)

  类

    案例:

    class Person{

      name:string;    // 定义属性

      age:number;    

      constructor(name:string,age:number){    // 实例

        this.name=name;

        this.age=age;

      }

      run(){

        console.log("hello world")  // 这个是定义方法

      }

    }

    var person = new Person("zhang",20);

    定义类的注意事项

    1. ts 定义类,首先如果有属性,一定要定义属性,指定数据类型,不加修饰符,默认是 public

    2. ts 中,类没有原型概念

    3. new 实例的时候,就是调用构造函数

    4. 方法中的 this 指向实例对象

  类的继承:关键字 extends  super

  案例:

    class Animal{

      name:string;

      age:number;

      constructor(name:string,age:number){

        this.name=name;

        this.age=age;

      }

      move(){

        console.log(this.name);

      }

    }  

    class Dog extends Animal{

      constructor(name:string,age:number){

        super(name,age)

      }

    }

    var shinubi = new Dog("史努比",7);

    shinubi.move()

typescript 第二部分

标签:实参   function   animal   修饰符   var   nim   注意   部分   ==   

原文地址:https://www.cnblogs.com/shangjun6/p/11196458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!