数据类型和变量声明

2021-03-01  本文已影响0人  simon_李玉兵

数据类型

布尔值

let isDone: boolean = false;

数字

let a: number = 6;

字符串

let name: string = "simon";

Null 和 Undefined

let u: undefined = undefined; 
let n: null = null;

默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。

Object

let b:object = {name: 'simon'}

数组

TypeScript像JavaScript一样可以操作数组元素。 有两种方式可以定义数组。 第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:

let list: number[] = [1, 2, 3];

第二种方式是使用数组泛型,Array<元素类型>:

let list: Array<number> = [1, 2, 3];

元组 Tuple

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

let x: [string, number];
x = ['hello', 10]; // OK
x = [10, 'hello']; // Error

枚举

使用枚举类型可以为一组数值赋予友好的名字

enum Color {Red, Green, Blue}

默认情况下,从0开始为元素编号。 你也可以手动的指定成员的数值。

enum Color {Red = 1, Green = 2, Blue = 4}

Any

有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型

let list: any[] = [1, true, "free"];

Void

当一个函数没有返回值时,你通常会见到其返回值类型是 void:

function warnUser(): void {
    console.log("This is my warning message");
}

never

never类型表示的是那些永不存在的值的类型。

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

类型断言

通过类型断言这种方式可以告诉编译器,“相信我,我知道自己在干什么”。类型断言有两种形式。 其一是“尖括号”语法:

let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;

另一个为as语法:

let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

变量声明

抛弃var的声明方式,改用let和const

解构

数组解构

let input = [1, 2];
let [first, second] = input;
console.log(first); // outputs 1
console.log(second); // outputs 2

对象解构

let o = {
    a: "foo",
    b: 12,
    c: "bar"
};
let { a, b } = o;
// a的值foo
// b的值12

展开

let first = [1, 2];
let second = [3, 4];
let bothPlus = [0, ...first, ...second, 5]; // [0, 1, 2, 3, 4, 5]

对象展开 这就意味着出现在展开对象后面的属性会覆盖前面的属性

let defaults = { food: "spicy", price: "$$", ambiance: "noisy" };
let search = { ...defaults, food: "rich" };  // { food: "rich", price: "$$", ambiance: "noisy" }
上一篇下一篇

猜你喜欢

热点阅读