这篇文章将为大家详细讲解有关Typescript中数据类型的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
是什么
typescript和javascript几乎一样,拥有相同的数据类型,另外在javascript基础上提供了更加实用的类型供开发使用。
在开发阶段,可以为明确的变量定义为某种类型,这样typescript就能在编译阶段进行类型检查,当类型不符合预期结果的时候则会出现错误提示
有哪些
typescript的数据类型主要有如下:
boolean(布尔类型)
number(数字类型)
string(字符串类型)
array(数组类型)
tuple(元组类型)
enum(枚举类型)
any(任意类型)
null和undefined类型
void类型
never类型
object(对象类型)
boolean
let flag:boolean = true;flag = 123; // 错误flag = false; // 正确
number
数字类型,和javascript一样,typescript的数值类型都是浮点数,可支持二进制、八进制、十进制和十六进制。
let num:number = 123;num = '456'; // 错误num = 456; // 正确
进制表示:
let decLiteral:number = 6; // 十进制let hexLiteral:number = 0xfood; // 十六进制let binaryLiteral:number = 0b1010; // 二进制let octalLiteral:number = 0o744; // 八进制
string
字符串类型,和javascript一样,可以使用双引号(")或单引号(')表示字符串
let str:string = 'this is ts';str = 'test';
作为超集,当然也可以使用模板字符串进行包裹,通过${}嵌入变量
let name:string = `Gene`;let sentence:string = `Hello, my name is ${name}`
array
数组类型,跟javascript一致,通过[]进行包裹,有两种写法:
方式一:元素类型后面接上[]
let arr:string[] = ['12','23'];arr = ['45','56'];
方式二:使用数组泛型,Array<元素类型>:
let arr:Array<number> = [1,2];arr = ['45','55'];
tuple
元组类型,允许表示一个已知元素和类型的数组,各元素的类型不必相同
let tupleArr:[number,string,boolean];tupleArr = [12,'34',true]; // yestupleArr = [12,'34']; // no
enum
enum类型是对javascript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字
enum Color {Red,Green,Blue}let c:Color = Color.Green;
any
可以指定任何类型的值,在编程阶段还不清楚类型的变量指定一个类型,不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查,这时候可以使用any类型
使用any类型允许被赋值为任意类型,甚至可以调用其属性、方法
let num:any = 123;num = 'str';num = true;
定义存储各种类型数据的数组时,示例代码如下:
let arrayList:any[] = [1,false,'fine'];arrayList[1] = 100;
null和undefined
在javascript中null表示 “什么都没有”,是一个只有一个值的特殊类型,表示一个空对象引用,而undefined表示一个没有设置值的变量。
默认情况下null和undefined是所有类型的子类型,就是说你可以把null和undefined赋值给number类型的变量
let num:number | undefined; // 数值类型或者undefinedconsole.log(num); // 正确num = 123; console.log(num); // 正确
但是ts配置了--strictNullChecks标记,null和undefined只能赋值给void和它们各自
void
用于标识方法返回值的类型,表示该方法没有返回值。
function hello():void { alert('Hello Runoob')}
never
never是其他类型(包括null和undefined)的子类型,可以赋值给任何类型,代表从不会出现的值,
但是没有类型是never的子类型,这意味着生命never的变量只能被never类型所赋值。
never类型一般用来指定哪些总是会抛出异常,无限循环
let a:never;a = 123; // 错误的写法a = (() => { // 正确的写法 throw new Errow('错误')})()// 返回的never的函数必须存在无法达到的终点function error(message:string): never { thorw new Error(message);}
object
对象类型,非原始类型,常见的形式通过{}进行包裹
let obj:object;obj = {name:'Zhang',age:23};
关于“Typescript中数据类型的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。