一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
TypeScript是拥有类型的JavaScript超集,它可以编译成普通、干净、完整的JavaScript代码,可以将TypeScript理解成加强版的JavaScript
变量的声明
在TypeScript中定义变量需要指定 标识符 的类型,声明了类型后TypeScript就会进行类型检测
,声明的类型可以称之为类型注解
;
var/let/const 标识符: 数据类型 = 赋值;
例:let name: string = "zhangsan";
(注:这里的string是小写的,和String是有区别的。string是TypeScript中定义的字符串类型,String是ECMAScript中定义的一个类)
在TypeScript定义变量(标识符)和ES6之后一致,可以使用var、let、const来定义。在TypeScript中同样也不建议再使用var关键字,因为var是没有块级作用域的,会引起很多的问题。
number类型
TypeScript和JavaScript一样,不区分整数类型(int)和浮点型(double),统一为number类型。TypeScript也是支持二进制、八进制、十六进制的表示。
num = 100; // 十进制
num = 0b110; // 二进制
num = 0o555; // 八进制
num = 0xf23; // 十六进制
boolean类型
boolean类型只有两个取值:true和false
let flag: boolean = true;
flag = false;
flag = 1 > 2
string类型
string类型是字符串类型,可以使用单引号或者双引号表示,同时也支持ES6的模板字符串来拼接变量和字符串
let name: string = "zhangsan";
name = 'lisi';
const age = 20;
const info = `my name is ${name}, I'm ${age} years old `;
Array类型
数组类型的定义有两种方式。
const names: string[] = ["zhangsan", "lisi", "wangwu"];
const namelist: Array<string> = ["zhangsan", "lisi", "wangwu"];
Object类型
object对象类型可以用于描述一个对象,但是从obj中我们不能获取数据,也不能设置数据
const obj: object = {
id: 1,
name: "zhangsan",
value: "123123"
}
obj["id"];//获取不到
Symbol类型
在ES5中,是不可以在对象中添加相同的属性名称的,比如下面的做法:
const obj = {
value: "123",
value: "456"
}
通常我们的做法是定义两个不同的属性名字:比如value1和value2;但是我们也可以通过symbol来定义相同的名称,因为Symbol函数返回的是不同的值:
const v1: symbol = Symbol("value");
const v2: symbol = Symbol("value");
const obj = {
[v1]: "123123",
[v2]: "456456"
}