Skip to content

变量声明

在 TypeScript 中,变量声明遵循一定的规则和语法,以确保变量的类型安全。以下是几种主要的变量声明方式及其特点:

  1. 基础声明

基本的变量声明与 JavaScript 相似,但可以加上类型注解来指定变量的类型。

ts
let name: string = "Alice"; // 声明一个字符串类型的变量
let age: number = 30; // 声明一个数字类型的变量
let isStudent: boolean = true; // 声明一个布尔类型的变量
  1. 类型推断

TypeScript 会尝试自动推断变量的类型。如果在声明时未指定类型,且初始化了变量,TypeScript 会根据初始值推断类型。

ts
let name = "Bob"; // TypeScript 推断 name 为 string 类型
  1. const 和 let
  • let:用于声明一个可以在其作用域内重新赋值的变量。
  • const:用于声明一个在其作用域内不可重新赋值的常量。必须在声明时初始化。
ts
let score = 85;
score = 90; // 允许重新赋值

const pi = 3.14; // 必须初始化,之后不能更改
  1. 接口与类型别名

使用接口(interface)或类型别名(type)定义复杂的类型,然后在变量声明时引用这些类型。

ts
interface User {
  id: number;
  name: string;
}

type ComplexType = number | string | boolean;

let user: User = { id: 1, name: "Charlie" };
let complexValue: ComplexType = "TypeScript";
  1. 可选类型与默认值
  • 可选类型:在类型后面加 ? 表示该属性是可选的。
  • 默认值:在变量声明时可以直接赋予默认值。
ts
function greet(name: string, greeting?: string) {
  if (greeting) {
    console.log(greeting + ", " + name);
  } else {
    console.log("Hello, " + name);
  }
}

greet("Bob"); // greeting 参数是可选的
  1. 联合类型与枚举
  • 联合类型:使用 | 分隔,表示变量可以是多个类型之一。
  • 枚举(enum):定义一组命名的常量。
ts
let favoriteColor: "red" | "blue" | "green" = "blue"; // 联合类型

enum Color {
  Red,
  Green,
  Blue,
}
let selectedColor: Color = Color.Green; // 枚举类型
  1. any 和 unknown
  • any:允许变量为任意类型,但会放弃类型检查。
  • unknown:与 any 类似,但更安全,需要类型断言或检查才能使用。
ts
let anyValue: any = "text";
anyValue = 123; // 允许类型改变

let unknownValue: unknown = "test";
let sureString: string = unknownValue as string; // 使用类型断言

Released under the MIT License.