📜  TypeScript-变量(1)

📅  最后修改于: 2023-12-03 15:35:24.737000             🧑  作者: Mango

TypeScript-变量

TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的超集,并添加了一些新的语言特性。其中一个最重要的特性就是类型。在 JavaScript 中,我们可以定义变量而不声明它的类型,但在 TypeScript 中,变量需要声明其类型。这样,我们可以在代码编写期间捕捉到很多错误,从而提高代码质量和可维护性。

定义变量

在 TypeScript 中,我们可以使用 letconstvar 关键字来定义变量。相比于 JavaScript,TypeScript 还支持元组和枚举类型。

let

let 关键字用来声明一个块作用域的变量。它的值可以在同一作用域中进行更改。

let foo: string = 'hello world';
foo = 'hello TypeScript';
const

const 关键字用来声明一个常量。与 let 不同的是,const 声明的变量的值在声明后就不能被修改了。

const foo: string = 'hello world';
foo = 'hello TypeScript'; // 错误,这里会报错
var

var 关键字也用来声明变量,但与 let 不同的是,var 声明的变量是全局作用域或函数作用域的。在 TypeScript 中,我们不推荐使用它来声明变量。

var foo: string = 'hello world';

function test() {
  var foo: string = 'hello TypeScript';
  console.log(foo);
}

test(); // 输出 'hello TypeScript' 

console.log(foo); // 输出 'hello world'
区分类型和值

在 TypeScript 中,除了可以定义变量的类型,还可以定义变量的值。当我们讨论一个变量的类型时,使用 : 来表示;当我们讨论一个变量的值时,使用 = 运算符来表示。

let foo: string = 'hello world'; // 定义一个类型为 string 的变量 foo,并赋值为 'hello world'

let bar: number; // 定义一个类型为 number 的变量 bar,没有赋值

bar = 42; // 给 bar 赋值为 42
类型推断

在 TypeScript 中,如果我们没有显式地声明变量的类型,编译器会根据变量的初始值来推断它的类型。

let foo = 'hello world'; // TypeScript 会自动将 foo 推断为 string 类型

let bar; // TypeScript 会将 bar 推断为 any 类型,因为没有给它赋值

let baz = []; // TypeScript 会将 baz 推断为 any[] 类型
元组

元组是 TypeScript 中新增的一个类型,它可以包含多个不同类型的元素,并且元素的数量是固定的。

let tuple: [string, boolean, number] = ['foo', true, 42];
枚举

枚举也是 TypeScript 中的一个类型,它用来定义命名常量的集合。在枚举中,每个常量都有一个与之关联的数字值。

enum Color { Red, Green, Blue }

let color: Color = Color.Green; // 1
总结

TypeScript 的变量类型是其最重要的特性之一。我们可以使用 letconstvar 关键字来定义变量,还可以使用类型推断来简化代码。此外,TypeScript 还支持元组和枚举类型,可以提高代码的可读性和可维护性。