目录
前言
TypeScript是 JavaScript 的一个超集,支持 ECMAScript 6 标准,由微软公司开发的自由、开源的编程语言,扩展了javaScript 得语法,它的设计目标是开发大型应用,全部浏览器兼容。
优点: 它有更多的规则和类型限制,代码具有更高的预测性、可控性,易于维护和调试;对模块、命名空间和面向对象的支持,更容易组织代码开发大型复杂程序。
提示:以下是本篇文章正文内容,下面案例可供参考
变量
let 变量名称:变量类型 = 变量值 (所有类型的首字母必须为小写)
布尔型
let bool:boolean = true //他的值只有 true/false
数字型
let num:number = 100
还支持二进制、八进制、和十进制以及十六进制的格式,如以下格式:
let binaryLiteral:number = 0b1010;
let octalLiteral:number = 0o744;
let decLiteral:number = 6;
let hexLiteral:number = 0xf00d;
字符串类型
又称为文本数据类型,使用双引号(" ")声明: let str:string = "string" 或 使用单引号(" ")声明 let str:string = "string"
还可以使用模板字符串和定义多行文本和内嵌样式:
let name:string = "Tom";
let age:number = 17;
let info:string = `My name is ${name}, I am ${age + 1} years old` // 我的名字是Tom,我18岁了
undefined 和 null 类型
undefined型
let u:undefined = undefined;
null型
let n:null = null;
这两种类型和 void 相似,在TS语法中,这两种类型的功能并不是很强大,它是所有类型的子类,也就是说你可以将它赋值给任意类型。如果不声明类型,默认为 undefined 型:
let varriate;
console.log(typeof varriate); //undefined
如果给定类型的话就不能给他赋其他类型的值,否则提示语法错误:
let u:undefined;
u = undefined; //ok
u = 100; //提示 语法错误 不能将100 赋值给 undefined 类型
void类型
从某种程度上将,void 类型与any类型相反,他表示没有任何类型。当一个函数没有返回值时,其返回值类型是void:
function fun():void{
console.log(‘ok’);
}
声明一个 void 类型的变量没有什么大的用处,因为他只能接收undefined 和 null 类型值
let un:void = undefined;
let nu:void = null;
any类型
当一个变量的值源于用户输入、动态内容和第三方插件,在不清楚明确类型时,可以将此变量定义为 any 型;当我们只知道一部分值的类型时,也可定义为 any 型
let notSure:any = 6;
console.log(typeof notSure); // number
let arr:any[] = [1,true,"hello"];
console.log(arr); // [1,true,"hello"]
arr[1] = "world"; // 此时第2个元素由数字型变为了字符串型
unknown类型
他是3.0时引入的类型,和 any 类型相似,但是相对any类型比较安全,所以定义时比 any 类型更加的严格。执行操作之前,必须进行某种形式的检查,而这是 any 类型执行操作前所没有的。
let value:unknown;
value = true; //ok
value = 42; //ok
value = "Hello World"; //ok
一个变量类型是变化的就用 any ,类型是固定的,但目前还不能确定或不想确定,就用 unknown ,一般需要在用之前断言一下,才能通过语法检查。
let value:unknown;
let value1: unknown = value; //ok
let value2: any = value; //ok
let value3:boolean = value; //error
let value4:boolean = value as boolean; //ok
never类型
它是其它类型的子类型,代表从不会出现的值,never 变量只能被 never 类型所赋值,函数中它通常表现为抛出异常或无法执行到终止点(never类型只需理解即可)
数组类型
如下表示声明number 类型数组,成员都是number类型
第一种,可以在元素类型后面接上 [ ],表示由此类型元素组成的一个数组
let nums:number[] = [1,2,3];
console.log(nums[0]); // 1
第二种方式是使用数组泛型,Array<元素类型>
let nums:Array<number> = [1,2,3];
console.log(nums[1]); // 2
元组类型
该类型是指定数组中每一个值具体类型,在赋值时必须遵循定义的顺序和类型,它是一种严格的数组,如以下代码:
let arr:[string,Boolean,number] = ["Hello",true,123];
object类型
表示非原始类型,也就是除number,string,boolean,symbol,null 或 undefined 之外的类型,如以下代码:
function test(obj:object){
console.log("ok");
}
test( { name:"Tom" } );
test ( () => {} );
test ( [1,2] );
test (null); // Error
(普通对象,函数,数组均是对象类型)
枚举类型
该类型是对JavaScript标准数据类型的一个补充,可以列出多个可选得范围 语法如下:
数据型枚举
可逆
enum num { one, two, three };
console.log(num); // { "0" : "one" , "1" : "two" , "2" : "three", one : 0, two : 1, three : 2}
字符型枚举
不可逆
enum num { one = "一", two = "二", three = "三" };
console.log(num); // { one : "一", two : "二", three : "三"}
异构型枚举
数据型枚举 + 字符串枚举
enum num { one = 1, two = "二", three };
console.log(num); //{ "1" : "one" , "2" : "three" , one : 1 , two : "二" , three : 2 }
多个类型
let a:number|string|undefined
console.log(a) // undefined 没有赋值就是undefined
a=100
console.log(a) //100
总结
以上就是本篇要讲的内容,本文仅仅简单介绍了 TypeScript 基础数据类型的使用,使我们快速便捷的掌握 TypeScript 基础数据类型的应用。