微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TypeScript初入门:了解数据类型篇

typeScript初使用

第一次使用时安装(记得要先安装node)
npm install -g typescript

将ts文件转换
tsc [文件名].ts

typescript中的数据类型

typescript中为了使编写的代码更加规范, 更有利于维护,增加了类型效验

  • 布尔类型(boolean)
    // es5写法
        var flag = true;
        flag = 456;
    // ts写法
        var flag: boolean = true;
         // 注意: 此时如果flag = 456 是会在编译时报错的
        flag = false
    // 值得一提的就是如果你是像下面这样写, 那你创造的不是布尔类类型, 而是一个Boolean对象。
        var flag: boolean = new Boolean();
    // 因为 boolean 是JavaScript中的基本类型, 而 Boolean 则是JavaScript中的构造函数
  • 数组类型(number)
     // ts写法
        var num: number = 123;
        num = 456
  • 字符串类型(string)
     // ts写法
        var str: string = 'hello world';
        str = '小明'
     // ts中当然也是可以使用Es6中的模板字符串的
        sentence = `hello ${str}`
  • 数组类型(array)
     // ts写法
     // ts中有两种定义数组的方法
     // 第一种定义数组方式
        var arr:number[] = [1,2,3,4,5]
     // 第二种定义数组方式
     // 规定数组中的数据类型
        var arr:Array<number>=[1,2,3,4,5]
  • 元祖类型(tuple)
     // ts写法
     // 元祖类型也属于数组的一种, 比如如下
        var arr:Array<string, number>=['hello world', 9527]
     // 其实就是给数组中每一个位置指定一个类型, 上面中如果你讲9527改成 '9527'是会报错的
  • 枚举类型(enum)
    // 枚举类型用于取值被限定在一定范围内的场景, 事先考虑到某一变量可能取的值, 尽量用自然语言中含义清楚的单词来表示它的每一个值。好比说 一周之内有七天,彩虹颜色限定红绿蓝等
    
    // 枚举成员会被赋值为从 0 开始递增的数字,同时也会对枚举值到枚举名进行反向映射。
     // 举个栗子如下面最后返回的是 success=0, erro=1
    enum Status {success, error}
    
     // 当然枚举项也是可以手动赋值 也可以赋值为 负数 小数 如果赋值为这些枚举数也一样是递增的列如
     // 举个栗子如下面最后返回的是 success=1.5,erro=2.5
     enum Status {success=1.5, error}
     
     // 枚举项也是可以赋值为string类型。但是如果赋值了string那么它是无法自增导致报错。所以要么继续设置string,要么设置为number那之后的一样会自增
     // 举个栗子如下面最后返回的是 success=成功, error=失败 ping=1 newData=2
     enum Status {success="成功", error="失败", ping=1, newData} 

    // 输出
    let s:Status = Status.success;
    console.log(s) // '成功'
  • 任意类型(any)
     // 在任意值上访问任何属性都是允许的
    let anyThing: any = 'hello';
    console.log(anyThing.myName);
    // 也允许调用任何方法
    let anyThing: any = 'Tom';
    anyThing.setName('Jerry');
    // 可以认为,声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
  • null 和 undefined
     // ts写法
    // 首先undefined错误写法
    let num:number;
    console.log(num) // undefined虽然会答应但是是错误的写法
    // 正确写法
    let num:undefined;
    console.log(num) // undefined 正确写法
    //  之后则是null类型, 当设置为空时。参数也只能是为空
    let num:null;
    num = 123; // 那么这属于错误
    //值得一提的是,如果要传的不是一个必填项时其实可以写:
    let num: number | null | undefined;
  • void类型
    // ts中vodi表示没有任何返回类型,一般用于定义方法的时候方法没有返回值
    //  举个栗子
    function run():void {
        console.log('123')
    }
  • never类型
    // never类型是其他类型(包裹null 和 undefined)的子类型, 表示从不会出现的值
    // 声明nerver的变量, 只能被never类型所赋值; 
    var a:undefined;
    var b: null;
    // 这样是不会报错的
    // 举个栗子
    a =(()=>{
        throw new Error("错误");
    })

需要知道的是如果在声明的时候没有定义类型, 那么他将会被定义为任意类型

    let some;
    some = 9527;
    some = 'hello 3Q';
    // 上面的操作其实等于
    let some: any;
    some = 9527;
    some = 'hello 3Q';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐