news 2026/5/1 7:28:29

TypeScript 基础语法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 项目,请告诉我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 1:56:48

TypeScript 类

TypeScript 中的类&#xff08;Class&#xff09;详解 TypeScript 的类&#xff08;class&#xff09;基于 ES6 类语法&#xff0c;并添加了强大的静态类型支持、访问修饰符、抽象类、装饰器等特性&#xff0c;使其更接近传统面向对象语言&#xff08;如 Java/C#&#xff09;&…

作者头像 李华
网站建设 2026/5/1 5:48:48

Excalidraw手势操作支持情况(触屏/平板)

Excalidraw 手势操作支持深度解析&#xff08;触屏/平板&#xff09; 在远程协作日益成为常态的今天&#xff0c;团队对“随时随地白板讨论”的需求从未如此迫切。无论是产品原型草图、系统架构推演&#xff0c;还是线上教学演示&#xff0c;一个能自然响应手指或触控笔输入的虚…

作者头像 李华
网站建设 2026/5/1 6:56:35

Open-AutoGLM指令集优化实战(专家级调优技巧大公开)

第一章&#xff1a;Open-AutoGLM指令集优化概述Open-AutoGLM 是面向生成式语言模型推理过程的高性能指令集优化框架&#xff0c;旨在通过底层指令重构与硬件协同设计&#xff0c;显著提升大模型在边缘设备和通用服务器上的执行效率。该框架融合了动态算子融合、稀疏化感知执行与…

作者头像 李华
网站建设 2026/5/1 5:48:00

大数据技术的基于Python的王者荣耀战队的游戏数据分析系统设计与实现20240516--论文-爬虫 可视化

文章目录系统截图项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统截图 大数据技术的基于Python的王者荣耀战队的游戏数据分析系统设计与实现20240516–论文…

作者头像 李华
网站建设 2026/5/1 5:48:07

5、图像打印、幻灯片制作与媒体播放指南

图像打印、幻灯片制作与媒体播放指南 一、图像打印 在计算机中打印图像是一项常见需求,以下是详细步骤: 1. 选择图像 :在“Pictures”文件夹中,选择想要打印的一张或多张图像。可以单独打印单张图像,也能选择多张图像,且多张图像既可以逐张打印,也能在每张纸上打印…

作者头像 李华
网站建设 2026/5/1 6:57:40

Excalidraw开源社区对AI功能的反馈汇总

Excalidraw开源社区对AI功能的反馈汇总 在远程协作日益成为常态的今天&#xff0c;技术团队、产品设计和教育工作者对可视化工具的需求早已不再局限于“能画图”——他们需要的是一个既能激发创意、又能快速表达想法的数字白板。Excalidraw 正是在这样的背景下脱颖而出&#x…

作者头像 李华