You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何定义静态变量及指定常量数组为元组类型?

定义常量元组避免代码重复

要让TypeScript将数组推断为固定值的元组类型,最简洁的方式是使用as const类型断言,无需重复书写类型:

const arr = ["a", "b"] as const;

此时arr的类型会被推断为readonly ["a", "b"],完全符合固定值元组的需求。如果需要复用这个类型,可以通过typeof提取:

type FixedTuple = typeof arr;
// 后续可直接使用该类型
const anotherArr: FixedTuple = ["a", "b"];

如果不需要只读限制,可通过展开运算符转为可变元组类型:

type MutableFixedTuple = [...typeof arr];
const mutableArr: MutableFixedTuple = ["a", "b"];
mutableArr[0] = "c"; // 此时允许修改元素
TypeScript中定义静态变量

静态变量指属于类/模块本身而非实例的变量,TypeScript中有两种常用定义方式:

类中的静态变量

使用static关键字声明,变量归属类本身,无需实例化即可访问:

class Config {
  // 可修改的静态变量
  static apiUrl = "https://example.com/api";
  // 只读静态变量(推荐用于固定常量)
  static readonly maxRetryTimes = 3;
}

// 访问方式
console.log(Config.apiUrl);
console.log(Config.maxRetryTimes);

模块级静态变量

直接在模块中用const或export const声明,模块加载时仅初始化一次,相当于模块级静态变量:

// utils.ts
export const DEFAULT_TIMEOUT = 5000;
export const SUCCESS_CODES = [200, 201] as const;

// 其他文件中使用
import { DEFAULT_TIMEOUT } from "./utils";

这种方式适合不需要类结构的场景,是日常开发中最常用的静态变量定义方式。

内容的提问来源于stack exchange,提问作者masinnlos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:42:40