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

TypeScript 基础语法

TypeScript 基础语法详解

TypeScript(TS)是 JavaScript(JS)的超集,所有合法的 JavaScript 代码都是合法的 TypeScript 代码。TS 在 JS 基础上主要增加了静态类型系统,其他语法几乎与现代 JS(ES6+)一致。下面从基础语法入手,逐步介绍 TS 独有或增强的部分。

1. 基本类型(Primitive Types)

TS 支持 JS 的所有原始类型,并要求显式或隐式指定类型。

letisDone:boolean=false;letage:number=30;// 包括整数、浮点数、BigInt(如 100n)letbinary:number=0b1010;// 二进制letoctal:number=0o744;// 八进制lethex:number=0xf00d;// 十六进制letusername:string="Alice";letsentence:string=`Hello,${username}!`;// 模板字符串letundefinedValue:undefined=undefined;letnullValue:null=null;letsym:symbol=Symbol("unique");
2. 数组和元组(Array & Tuple)
// 数组:两种写法等价letlist1:number[]=[1,2,3];letlist2:Array<number>=[1,2,3];// 泛型写法// 元组:固定长度、固定类型的数组lettuple:[string,number]=["hello",10];// tuple[2] = 100; // 错误:长度固定
3. any、unknown、never、void
letanything:any=4;anything="string";// any 可以赋值为任何类型,几乎关闭类型检查letunsure:unknown=4;// unsure.toFixed(); // 错误:需先类型检查if(typeofunsure==="number"){unsure.toFixed();}functionerror(msg:string):never{thrownewError(msg);// never 表示永远不会正常返回}functionlog():void{console.log("no return");}
4. 对象类型:接口(interface)和类型别名(type)
// 接口(推荐用于定义对象形状)interfacePerson{name:string;age?:number;// 可选属性readonlyid:number;// 只读属性[prop:string]:any;// 索引签名:允许任意额外属性}letuser:Person={name:"Bob",age:25,id:1,extra:"anything"};// user.id = 2; // 错误:只读// 类型别名(更灵活,可用于联合类型等)typeID=string|number;letuserId:ID=123;userId="abc";
5. 函数语法
// 函数声明functionadd(x:number,y:number):number{returnx+y;}// 函数表达式constsubtract:(a:number,b:number)=>number=(a,b)=>a-b;// 可选参数和默认参数functiongreet(name:string,greeting?:string):string{return`${greeting??"Hi"}${name}`;}greet("Alice");// OKgreet("Alice","Hello");// 剩余参数functionsum(...nums:number[]):number{returnnums.reduce((a,b)=>a+b,0);}
6. 联合类型(Union)和类型守卫(Type Guards)
letid:string|number=123;id="abc";functionprintId(id:string|number){if(typeofid==="string"){console.log(id.toUpperCase());// 类型守卫:TS 知道这里是 string}else{console.log(id.toFixed());}}
7. 类型断言(Type Assertion)
letsomeValue:any="this is a string";letstrLength:number=(someValueasstring).length;// 另一种写法(React 中常用)letstrLength2:number=(<string>someValue).length;
8. 字面量类型(Literal Types)
typeDirection="up"|"down"|"left"|"right";letdir:Direction="up";// 只能是这四个值之一typeYesOrNo=true|false;typeZero=0;
9. 枚举(Enums)
enumColor{Red,// 默认 0Green=2,Blue// 3}letc:Color=Color.Green;console.log(Color[2]);// "Green"(反向映射)
10. 基本配置(tsconfig.json 常用选项)

新手常用严格模式配置片段:

{"compilerOptions":{"target":"ES2022","module":"ESNext","strict":true,// 开启所有严格检查"noImplicitAny":true,"strictNullChecks":true,"esModuleInterop":true,"forceConsistentCasingInFileNames":true}}
小结:入门建议
  1. 从普通 JS 项目逐步添加.ts.tsx文件。
  2. 开启strict模式,强制养成良好类型习惯。
  3. 多用类型推断,减少不必要的显式注解。
  4. 学会阅读编译错误信息,这是提升最快的途径。

如果您想看某个部分的完整示例代码(如类、泛型入门、异步函数等),或者想练习一个小型 TS 项目,请告诉我!

http://www.gsyq.cn/news/130439.html

相关文章:

  • 17、Windows Server 2003 集群与负载均衡解决方案设计
  • 【AutoGLM最佳实践指南】:从零部署到性能优化的7个关键节点
  • TypeScript 基本结构
  • 14、Windows Vista个性化设置与维护指南
  • Excalidraw OCR文字提取功能设想
  • 275. Java Stream API - flatMap 操作:展开一对多的关系,拉平你的流!
  • 2025年rohs检测仪优质供应商推荐,rohs检测仪专业制造商靠谱厂家全解析 - mypinpai
  • 【无代码AI时代来临】:Open-AutoGLM让你7天掌握智能流程构建
  • 2025年可靠的实验室球磨机公司、卧式行星球磨机工厂年度排名 - myqiye
  • 彩色无纺布服务商哪家性价比高?哪家质量靠谱? - mypinpai
  • Open-AutoGLM脚本库深度解析(99%工程师忽略的性能优化技巧)
  • Open-AutoGLM你不知道的隐藏功能:高精度错误分类模型一键部署方案
  • 探秘芦花海盐:质量控制、技术实力与性价比全解析 - myqiye
  • 把 GPT 当成 Runtime:在客户端内实现一个可控、可审计的投资决策执行流程
  • 冬至是农历年计算的基点
  • 8、Windows Vista 使用指南:用户管理、共享设置与笔记本功能
  • Cooperative ISAC: An End-to-End Perspective - 教程
  • 培养优秀的测试思维:软件测试从业者的核心素养
  • 9个AI论文工具,专科生轻松搞定毕业写作!
  • 制造业咨询公司哪家强?2025年12月最新避坑指南及五大实力派机构专业推荐 - 十大品牌推荐
  • 7、Windows 7 使用指南:文档操作、任务切换与个性化设置
  • Excalidraw版本更新日志解读:新功能抢先体验
  • 从“背锅侠“到“项目守门人“:我的角色蜕变
  • 9、Windows 7 使用指南:账户切换、文件管理全攻略
  • 还在人工充值?Open-AutoGLM已实现百万级订单无人值守处理
  • 基于单片机的智能小车仿真设计:探索科技与趣味的融合
  • Open-AutoGLM成功率如何精准预测?3个核心公式揭晓答案
  • 无用之用
  • 盘点2025年:这些烘箱公司凭口碑脱颖而出,二维混合机/臭氧配套系统/远红外隧道烘箱/真空烘箱/真空干燥箱烘箱源头厂家有哪些 - 品牌推荐师
  • 高级特性 PK:延迟队列、死信队列,三大 MQ 各自怎么实现?