typescript的类型有哪些

typescript的类型主要有:

  • boolean 布尔类型
  • number 数字类型
  • string 字符串类型
  • array 数组类型
  • tuple 元组类型
  • enum 枚举类型
  • any 任意类型
  • null 和 undefined类型
  • void类型
  • never 类型
  • object 对象类型

boolean

布尔类型

let flag:boolean = true;
//flag = "张三"; //错误
flag = false; //正确

number

数字类型

let number:number = 1;
// num = '李四'; //错误
num = 2; //正确

进制表示

let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0xf00d; // 十六进制
let binaryLiteral: number = 0b1010; // 二进制
let octalLiteral: number = 0o744; // 八进制

string

字符串类型

let str:string = '张三';
str = '李四';

let name:string = '张三';
let age:number = 18;
let sentence:string  = `Hello ,my name is ${name},${age} years old!`

Array

数组类型,[], Array<元素类型>

let arr:string[] = ['1','2','a','b'];
arr = ['123','345']

let  temp:Array<number> = [1,2,3,4]
temp = [5,6,7]

tuple

元组类型

let tupleArr:[number,string,boolean];
tupleArr = [1,'2',true]

enum

枚举

enum Color {Red,Green,Blue}
let c:Color = Color.Red;

any

任意类型,可以指定任何类型的值,在编程阶段还不清楚类型的变量指定一个类型,不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查,这时候使用any类型,一般情况下项目是不允许出现any的,用多了就没意义了,变成了anyscript

let num:any = 123;
num = '123';
num = true;

let arr:any[] = [1,true,'abc'];
arr[1] = 2;

null 和 undefined

在js中null表示什么都没有,是一个只有一个值的特殊类型,标识一个空对象引用,而undefined表示一个没有设置值的变量。
默认情况下nullundefined是所有类型的子类型,表示可以把nullundefined赋值给number类型的变量

let num:number | undefined;//数值类型或者undefined
console.log(num);//正确
num = 1;
console.log(num);//正确

如果ts配置了--strictNullChecksnullundefined只能赋值给void和他们各自

void

用于标识方法返回值的类型,表示方法没有返回值

function hello():void {
 console.log("Hello world!")
}

never

never是其他类型,包括nullundefined 的子类,可以赋值给任何类型,代表不会出现的值
但是没有类型是never类型的子类型,这意味着声明never的变量只能被never所赋值
never类型一般用来指定那些总会抛出异常,无限循环

let a:never;
a = 123; //错误

a = (()=>{
  throw new Error("错误")
})();

//返回never的函数必须存在无法到达的终点
function error(message:string):never {
    throw new Error(message)
}

object

对象类型,非原始类型,常见的形式通过{}进行包裹

let obj:object;
obj = {name:'张三',age:18}

总结

和js基本一致,分为

  • 基本类型
  • 引用类型
    在基础类型上增加了void,any,enum等原始类型
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容