美文网首页
typescript数据类型篇

typescript数据类型篇

作者: mills_han | 来源:发表于2018-06-05 14:25 被阅读0次

    javascript中分为原始数据和对象类型两种。
    原始数据类型包括:布尔值、数值、字符串、nullundefined 以及 ES6 中的新类型 Symbol
    typescript中和JavaScript的数据类型大致相同,只是做了一些扩展,下面是具体的用法

    布尔值(boolean)

    boolean是最基本的数据类型,在typescript中是boolean来定义

    let flag: boolean =  false;  //冒号后跟的是数据类型
    

    数值(number)

    和js中一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是 number。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。下面是官方文档中给出的例子:

    let decLiteral: number = 6;
    let hexLiteral: number = 0xf00d;
    // ES6 中的二进制表示法
    let binaryLiteral: number = 0b1010;
    // ES6 中的八进制表示法
    let octalLiteral: number = 0o744;
    let notANumber: number = NaN;
    let infinityNumber: number = Infinity;
    

    字符串(string)

    和js中一样,双引号和单引号都可以使用,同样支持es6中的字符串模版(``),${变量名}这种方式

    let str: string = 'hello'; 
    let str: string = `hello`;
    let name: string = "typescript";
    let sayHello: string = `你好吖,${name}`;
    

    空值(void)

    typescript允许设置空的类型,比如一个无返回值的函数,(感觉和java定义函数的方式一样)

    function sayHello() :void {
      console.log('hello typescrip')
    }
    

    声明一个空的变量没什么实际作用,所以可以使用undefined或者null

    let unusable: void = undefined;
    

    null和undefined

    undefined 类型的变量只能被赋值为 undefined,null 类型的变量只能被赋值为 null。
    let u: undefined = undefined;
    let n: null = null;
    

    undefined 类型的变量只能被赋值为 undefined,null 类型的变量只能被赋值为 null。
    与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量:

    //下边这两种都不会报错
    let num: number = undefined;  
    let list: number[] = null;
    // 这样也不会报错
    let u: undefined;
    let num: number = u;
    

    但是void的变量不能赋值给number类型的变量

    let u: void;
    let num: number = u;
    base.ts:16:5 - error TS2322: Type 'void' is not assignable to type 'number'. //不能将类型为void的变量赋值给number
    16 let num: number = u;
    

    任意值(any)

    任意值(Any)用来表示允许赋值为任意类型。
    如果是一个普通类型在赋值过程中是不允许改变类型的

    let getting: string = 'welcome'
    getting = 999;    //在typescript中是不允许这样改变类型的
    fn.ts:9:1 - error TS2322: Type '99' is not assignable to type 'string'.
    9 getting = 99;
    

    但是如果在定义变量时把类型改为any, typescript是允许更改类型的

    let getting: any= 'welcome'
    getting = 999;    //ok
    //甚至于你可以调用方法,都不会报错
    getting.sayName('hello')
    
    tip: 如果定义变量未声明类型,那么该变量将默认为any类型
    let number;
    //相当于 let number: any;
    

    下一遍学习typescript的对象类型

    相关文章

      网友评论

          本文标题:typescript数据类型篇

          本文链接:https://www.haomeiwen.com/subject/lgeesftx.html