TypeScript 变量声明
在 TypeScript 中,我们使用 let 和 const 关键字来声明变量。这与现代 JavaScript (ES6) 的做法一致。var 关键字虽然仍然可用,但通常不推荐使用,因为它存在一些作用域问题。
1. 使用 let 声明变量
let 用于声明一个块级作用域的局部变量。这意味着变量只在声明它的代码块(例如,if 语句、for 循环或函数体)内有效。
使用 let 声明的变量,其值可以被修改。
2. 使用 const 声明常量
const 用于声明一个块级作用域的常量。常量在声明时必须被初始化,并且其值一旦被赋值后就不能再改变。
const 声明指的是变量引用的值不可变。如果常量是一个对象或数组,你不能重新给它赋值,但可以修改对象或数组内部的属性或元素。
3. 类型注解 (Type Annotation)
TypeScript 允许你在声明变量时显式地指定其类型,这称为“类型注解”。语法是在变量名后加上冒号 (:) 和类型名。
类型注解是可选的。如果你在声明变量的同时进行了初始化,TypeScript 会使用类型推断来自动确定变量的类型。
尽管类型推断很方便,但在以下情况下,显式地添加类型注解是很好的实践:
- 当一个变量没有被立即初始化时。
- 当函数返回值的类型不明显时。
- 当你希望代码的意图更加清晰明确时。
变量作用域 (Scope)
作用域决定了代码中哪些区域可以访问一个变量。
- 块级作用域 (Block Scope): 使用
let和const声明的变量具有块级作用域。它们只在最近的包含代码块({...})内有效。 - 函数作用域 (Function Scope): 使用
var声明的变量具有函数作用域。它们在整个函数内部都是可见的,无论在哪个代码块中声明。 - 全局作用域 (Global Scope): 在所有函数和代码块之外声明的变量具有全局作用域,在代码的任何地方都可以访问。