typeScript学习(-) ——数据类型

声明变量要同时声明类型,例如: let foo: string = 'hello!'

  类型有:

  {

    数字: number,      //值可为number,null, undefined

    字符串: string,    //值可为string,null, undefined

    布尔值:boolean,//值可为boolean,null, undefined

    null                   //值只能为null

    undedined        //值只能为undefined

    void               //void可以定义没有返回值的函数,如: function hello(): void { console.log('hello)},但当一个变量定义为空(void),这个变量的值只能是null或者unfined

    any               // 当变量设为任意类型,对它的任何操作(包括方法以及属性)都是允许的,当我们在声明变量时,既没有赋值也没有未定义类型(并的关系),会被自动

            当作any,但如果只是没定义类型,在定义的同时进行了赋值操作,typeScript会进行类型推论,指定一种类型,在整个过程中这个变量的类型将不允许再改变。

    never        

  }

1. 定义对象Object, 使用接口interface,先定义一个类型

       

       因此与接口Person保持一致的变量,多属性和少属性都是不允许的。

  注:

  (1) 但如果上边的代码 关于age的代码改为: age?: number, 则不会报错。

  (2)定义可选属性: 在属性后加?,如: age?: number。

    (3) 定义任意属性:如: [propName: string]: string, 一旦定义了任意属性,不论确定属性还是可选属性,都必须满足任意属性的条件,即值必须是个string。

  (4)定义只读属性:在属性前加readonly,如: readonly id:number;只可以在生成my这个对象的同时给这个属性赋值,其余时机是不允许的。

2. 定义数组Array的定义方法: (1)类型[]  (2)Array<类型>,这种方式也角数组的泛型(3)用接口定义数组 (4) 使用元组定义,示例如下: 

      l

  注:

   (1)定义任意类型的数组: let arr: any[] = [1, '2', {'key': 3}]

   (2) 定义类数组:常见的类数组都有自己的内置对象, 因此可以通过对应的内置对象来定义,(补充:js常见的内置对象有: Boolean, Error,Date, RegExp,

     DOM 以及BOM常见的内置对象:Document, HTMLElement, Event,  NodeList)

3. 定义函数的方式有三种:(1)函数声明 (2) 函数表达式 (3)接口定义函数,一个函数既有输入,又有输出,因此在ts需要考虑对这这两者都进行约束。示例如下: 

     

  注:

   (1)   函数多参数,少参数均是不被允许的

   (2)设置可选参数,如function(a?: number, b: number) {} ,值得注意的是,在函数体内,要区分有参数a和无参数a的情况

   (3)设置默认参数,如:function(a?: number = 1, b: number) {}

   (4)函数重载,示例如下:

    

     上例中,我们重复定义了多次函数 reverse,前几次都是函数定义,最后一次是函数实现。TypeScript 会优先从最前面的函数定义开始匹配,所以多个函数定义如果

     有包含关系,需要优先把精确的定义写在前面。

    

  

          

猜你喜欢

转载自www.cnblogs.com/lxiaoixao/p/10282118.html