当前位置: 首页 > web >正文

TypeScript变量声明讲解

把 TS 的变量声明看成“给盒子贴标签 + 上锁”的过程:
先决定盒子叫什么名字装什么类型的东西能不能换东西在哪层楼能用


一、三种声明关键字

关键字作用域是否可变是否可重复声明推荐场景
const块级 {...}❌ 不能重新赋值默认首选(最安全)
let块级 {...}✅ 可以重新赋值值需要改变时
var函数级✅ 可以重新赋值旧代码兼容,新项目不用

二、写类型的 4 种姿势

  1. 直接标注(最常用)

    const age: number = 18;
    let name: string;
    
  2. 类型推断(省字)

    const age = 18;     // TS 自动推断为 number
    
  3. 联合类型(一盒多格)

    let id: number | string;
    
  4. 泛型 + 工具类型(高级模板)

    type User = { name: string; age?: number };
    const user: Partial<User> = {};   // 所有属性可选
    

三、推荐写法口诀

  1. 默认 const
    能不动就不动,防止手滑改错。

  2. 需要改再用 let
    循环计数器、累加值等。

  3. 别用 var
    作用域怪坑多,除非维护老代码。

  4. 先推断,后标注
    简单类型让 TS 自己猜,复杂/联合/泛型再手写。

  5. 对象先写接口 / type

    interface User { name: string; age: number; }
    const user: User = { name: 'Tom', age: 20 };
    

四、完整示例

// 1. 常量不改
const API_URL = 'https://api.xxx.com';// 2. 循环里会变
for (let i = 0; i < 5; i++) { /* ... */ }// 3. 联合类型
let result: 'success' | 'error' = 'success';// 4. 对象类型
interface Person {readonly id: number;     // 只读,像身份证号name: string;age?: number;            // 可选
}
const tom: Person = { id: 1, name: 'Tom' };

记住顺口溜:
“先 const 后 let,var 扔掉别回忆;简单推断复杂标,对象接口先设计。”

http://www.xdnf.cn/news/18705.html

相关文章:

  • 个人思考与发展
  • 快速了解命令行界面(CLI)的行编辑模式
  • docker:compose
  • 【PSINS工具箱】MATLAB例程,平面上的组合导航,观测量为位置、速度、航向角,共5维。状态量为经典的15维
  • ModbusTCP与EtherNet/IP协议转换:工控机驱动步进电机完整教程
  • 智慧矿山误报率↓83%!陌讯多模态融合算法在矿用设备监控的落地优化
  • 安装即是已注册,永久可用!
  • Sql server的行转列
  • 数据结构:顺序表
  • C# 项目“交互式展厅管理客户端“针对的是“.NETFramework,Version=v4.8”,但此计算机上没有安装它。
  • 玳瑁的嵌入式日记D24-0823(数据结构)
  • 【基础-判断】使用http模块发起网络请求时,必须要使用on(‘headersReceive’)订阅请求头,请求才会成功。
  • 游戏广告投放数据分析项目:拆解投放的“流量密码”
  • 图像边缘检测
  • qwen2.5vl(2):lora 微调训练及代码讲解
  • Android Studio下载gradle文件很慢的捷径之路
  • 个人禁食伴侣FastTrack
  • 数据库类型与应用场景全解析:从传统关系型到新兴向量数据库
  • MySQL深分页的处理方案
  • React学习(十一)
  • 深入理解 React useEffect
  • 三、Bpmnjs 核心组件与架构介绍
  • 【c++进阶系列】:万字详解多态
  • 分库分表系列-基础内容
  • piecewise jerk算法介绍
  • 密码实现安全基础篇 . KAT(已知答案测试)技术解析与实践
  • SpringBoot自动配置原理解析
  • Reactor 反应堆模式
  • 游游的数组询问
  • SOC估算方法-蜣螂优化算法结合极限学习