TypeScript:const常量

介绍

常量是指声明后 不可修改 的值,使用 const 关键字定义。不能重新赋值,这有助于提高代码的 可读性 和 稳定性

对于不会修改的值,尽量使用 const 而非 let,明确表达不可变意图

应用场景

  • 类似手机中的 关于,里面的 CPU、屏幕尺寸、内存等配置是固定的,不能修改的

  • 圆周率 PI 就应该定义为常量,否则被某个程序员手误改错了,会影响计算

命名规范

常量名通常使用全大写字母,多个单词之间用下划线连接(如 MAX_LENGTH)

用法

// 声明基本类型常量
const PI: number = 3.14159;
const APP_NAME: string = "鸿蒙应用";
const IS_DEBUG: boolean = false;

// 声明后不能重新赋值(会编译报错)
// PI = 3.14; // 错误:无法分配到 "PI" ,因为它是常数

特点

必须初始化

声明时必须赋值,不能只声明不初始化

// 错误:常量声明必须包含初始化表达式
const MAX_SIZE: number

类型可以省略

会自动类型推断

const COUNT = 100; // 自动推断为 number 类型
const MESSAGE = "Hello"; // 自动推断为 string 类型

引用类型常量

引用类型(对象、数组等)的常量,其引用不可变,但内部属性可以修改

// 数组常量
const arr = [1,2,3.14,200]

arr[0] = 100 // 允许:数组内部元素
arr = [300,500]
arr = [300,500] // 错误:不能重新赋值引用

常量的作用域

常量的作用域遵循块级作用域规则,即仅在声明它的代码块({})内有效:

if (true) {
  const SCOPE_MSG = "块级常量";
  console.log(SCOPE_MSG); // 正确:在作用域内
}
// console.log(SCOPE_MSG); // 错误:超出作用域

常量与枚举结合使用

常使用 enum 配合常量定义一组相关的固定值:

enum Direction {
  UP,
  DOWN,
  LEFT,
  RIGHT
}

const DEFAULT_DIRECTION = Direction.UP;

function move(direction: Direction = DEFAULT_DIRECTION) {
  console.log(`移动方向:${direction}`);
}

使用推荐

集中管理常量:对于全局使用的常量,建议集中放在单独的文件中(如 constants.ets),便于维护

// constants.ets
export const MAX_RETRY_COUNT = 3;
export const API_BASE_URL = "https://api.example.com";
export const TIMEOUT_MS = 5000;

通过合理使用常量,可以使代码更加健壮、可维护,减少因意外修改导致的错误。


原文出处:/show_1GW21rwEXqyI.html