TypeScript之常用类型

本文详细介绍了TypeScript的常用类型,包括原始类型、数组、Any类型、变量类型注释、函数参数与返回类型、匿名函数、对象类型、联合类型、接口、类型断言、字面量类型以及枚举等。通过示例展示了如何使用这些类型,帮助读者深入理解TypeScript的类型系统。
摘要由CSDN通过智能技术生成

原始类型:string,number,boolean

javaScript 有三个经常会使用到的原始类型stirngnumber,boolean。每一个在Typescript都有一个相对应的类型。 正如你所期望的,你可以得到相同的名称在javascript中使用typeof去操作这些类型对应的

1.string代表的值,例如"Hello,world"。
2.number代表的值,例如42
3.boolean代表的两个值,truefalse

数组(Arrays)

若要指定类似[1,2,3]的数组类型,你可以使用number[]语法,这个语法可以声明任何类型的数组(e.g. string[])。或许你也看到过Array<number>的这种相同含义写法,

请注意[number]是元组(Tuples);请移步到Tuple

Any类型

TypeScript也有一个特殊的类型----any。任何时候,你不想因为类型问题而造成类型检查报错的时候,你都可以去使用它。 当你在一个值上使用any的时候,你可以在这个值上访问任何属性(访问的属性也是any类型),像function一样调用它,把任意类型的值都赋值给它。只要在合法的语法内,可以做相当多的事情:

let obj: any = { x: 0 };
// None of the following lines of code will throw compiler errors.
// Using `any` disables all further type checking, and it is assumed 
// you know the environment better than TypeScript.
obj.foo();
obj();
obj.bar = 100;
obj = "hello";
const n: number = obj; 

当你不想只是用写一长串类型去使TypeScript相信一行代码时,any类型非常有用。

noImplicitAny

当你不指定一个类型,并且TypeScript无法从上下文推断除类型的话,编译器一般会默认推断为any。通常情况下,如果你需要避免这种情况的话,因为any不会类型检查,这就需要使用编译器上的配置noImplicitAny去标识任何隐藏的any类型为错误(让编译器报错)。

在变量上使用类型注释

当你使用constvarlet去声明变量的时候,你可以选择直接指定类型:

let myName: string = "Alice"; 

TypeScript不使用"左侧类型(types on the left)"的风格,就像int x = 0;类型注释往往放在被注释的对象后面

然而通常情况下,这并不是必要的。尽可能的情况下,TypeScirpt会在你的代码上尝试自动推断类型。举个例子,变量的类型会被基于它的初始化类型进行推断:

// No type annotation needed -- 'myName' inferred as type 'string'
let myName = "Alice"; 

在大多数情况下,你不需要刻意的去学习推断规则,尝试使用更少的类型注释

函数(Functions)

Functions是JavaScript传递数据的主要工具。TypeScript允许你指定function的输入输出类型。

参数类型注释(Parameter Type Annotations)

当你定义了一个function ,你可以在function的每个参数后面添加类型注释,参数的类型定义在参数名称后面

// Parameter type annotation
function greet(name: string) {console.log("Hello, " + name.toUpperCase() + "!!");
} 

当参数添加了类型注释,调用function传递参数时,将会被检查:

// Would be a runtime error if executed!
greet(42); 

甚至你没有在你的参数后面进行类型声明,TypeScript仍然会检查你传递的参数数量是否正确

返回类型注释(Return Type Annotations)

你也可以添加返回类型注释返回类型注释出现在参数列表之后:

function getFavoriteNumber(): number {return 26;
} 

很类似变量类型注释,你通常不需要显式的添加一个返回类型注释,因为TypeScript会基于functionreturn语句,自动推导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值