Typescript学习02---数据类型

一、Typescript 数据类型

Typescript中为了使编码规范和利于维护,增加了类型校验,在typescript中主要提供了一下数据类型

  1. 布尔类型
  2. 数字类型
  3. 字符串类型
  4. 数组类型
  5. 元组类型
  6. 枚举类型
  7. renyileix
  8. null 和 undefined
  9. void类型
  10. never类型

1、布尔类型

//js写法
var flag = true;
flag = 456;

typescript中为了使编码规范,增加了类型校验,写ts代码必须指定类型

var flag:boolean = true;
flag =123			//报错误
/*-------------正确做法----------*/
var flag:boolean = true;
flag = false		//正确写法

2、数字类型

//js写法
var flag = 123;
flag = "hello,world";
var flag:number = 123;
flag = "hello,world";			//报错误
/*-------------正确做法----------*/
var flag:number = 123;
flag = 456		//正确写法

3、字符串类型

//js写法
var flag ="hello,world";
flag = 132 ;
var flag ="hello,world";
flag = 132 ;			//报错误
/*-------------正确做法----------*/

var flag:string ="hello,world";
flag = "你好,世界" ;	//正确写法

4、数组类型

//js中
var arr =['1','2','3']

数组类型(array) ts中定义数组有两种方式

//第一种定义数组的方式
var arr:number[] = [11,22,33];
var arr:number[] = [11,22,'33'];//报错

//第二种定义数组的方式
var arr:Array<number>=[11,22,33,44]

5、元组类型(tuple) 属于数组的一种

let arr:[number,string] = [123,'this is ts']

6、枚举类型(enum),对js标准数据类型的一个补充,枚举类型可以为一组数值赋予友好的名字

 /*enum 枚举名{
 	标识符[=整型常数],
 	标识符[=整型常数],
 	...
 	标识符[=整型常数],
 }*/
enum Color  { Red , Green, Blue };
let colorName : string = Color[1]
alert(colorName)    //如果类型为字符串,则会输出其下标值的内容

let colorName3 :Color = Color[2]
//不能将类型“string”分配给类型“Color”。
/*----------------------------------------------------------------*/
let colorName1 :Color = Color.Red
alert(colorName1)   //如果类型为enum,则会输出其属性的下标值

let colorName2 :string = Color.Red  
//不能将类型“Color.Red”分配给类型“string”。

编译为js的时候代码是这样的

var Color;
(function (Color) {
    Color[Color["Red"] = 0] = "Red";
    Color[Color["Green"] = 1] = "Green";
    Color[Color["Blue"] = 2] = "Blue";
})(Color || (Color = {}));
;
var colorName = Color[3];
alert(colorName);

用的最多的就是状态码

7、任意类型 any 与es5中没有指定类型有点相似

任意类型的用处

  1. 比如来自用户输入或第三方代码库
  2. 在对现有代码进行改写的时候,any类型是十分有用的,它允许你在编译时可选择地包含或移除类型检查。 你可能认为 Object有相似的作用,就像它在其它语言中那样。 但是 Object类型的变量只是允许你给它赋任意值 - 但是却不能够在它上面调用任意的方法,即便它真的有这些方法:

let notSure: any = 4;
notSure.ifItExists(); // okay, ifItExists might exist at runtime
notSure.toFixed(); // okay, toFixed exists (but the compiler doesn’t check)

let prettySure: Object = 4;
prettySure.toFixed(); // Error: Property ‘toFixed’ doesn’t exist on type ‘Object’.
```

  1. 当你只知道一部分数据的类型时,any类型也是有用的。 比如,你有一个数组,它包含了不同的类型的数据:
  2. let list: any[] = [1, true, "free"];
    
    list[1] = 100;
    

8、null 和 undefined 类型 —> 其他(never)类型数据类型的子类型

let u:undefined = undefined;
let a:null = null ;
var num:number|null|undefined   //--->这个叫做联合类型

9、void类型 像是与any类型相反,他表示没有任何类型,当一个函数没有返回值是,你通常会见到其返回值类型是void:

function warnUser():void {
	alert("this is my warning mesage")
}

声明一个void类型的变量没什么大用处,因为你只能赋予他undefinednull

10、Never类型 表示那些从不存在的值得类型 —>这意味着声明never的变量只能被never类型所赋值

var a:never;
a = 123 ; //错误写法

a= (() => {
	throw new Error('错误')
}())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值