ts语法(一)

140 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 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"
}