跳转到内容

TypeScript:修订间差异

轻之舟百科,让知识轻装启航
云云​(留言 | 贡献)
无编辑摘要
TeodoroSeccombe​(留言 | 贡献)
小 创建页面,内容为“。”
第1行: 第1行:
{{Infobox
<div style="width: 100%; border: 1px solid #a2a9b1; margin-bottom: 16px;">
| 标题 = TypeScript
<div style="background: #eaecf0; padding: 8px 12px; font-weight: bold;">{{{1|板块}}}</div>
| 内容 =  
<div style="padding: 12px;">
{{!}}-
{{{2|}}}
! 中文名
</div>
{{!}} TypeScript
{{#if:{{{3|}}}|
{{!}}-
<div style="text-align: right; padding: 6px 12px 10px; font-size: 0.9em;">[[{{{3|}}}|{{{4|更多 »}}}]]</div>
! 英文名
{{!}} TypeScript
{{!}}-
! 开发方
{{!}} 微软(Microsoft)<ref name="baidu">[https://baike.baidu.com/item/typescript TypeScript(百度百科)]</ref>
{{!}}-
! 首次发布
{{!}} 2012年10月<ref name="baidu" />
{{!}}-
! 编程范型
{{!}} 多范式:面向对象、泛型、函数式
{{!}}-
! 设计者
{{!}} Anders Hejlsberg
{{!}}-
! 最新稳定版本
{{!}} 6.0(2026年3月23日)<ref name="baidu" />
{{!}}-
! 类型系统
{{!}} 静态类型、结构类型、类型推断
{{!}}-
! 主要实现
{{!}} TypeScript编译器(参考实现)
{{!}}-
! 操作系统
{{!}} 跨平台
{{!}}-
! 许可证
{{!}} Apache License 2.0
{{!}}-
! 文件扩展名
{{!}} .ts, .tsx
{{!}}-
! 网站
{{!}} [https://www.typescriptlang.org/ www.typescriptlang.org]
}}
}}
 
</div>
'''TypeScript''' 是[[微软]]开发的一款开源编程语言,它是 [[JavaScript]] 的一个超集,在 [[JavaScript]] 的基础上添加了可选的静态类型和基于类的面向对象编程等特性。<ref name="baidu" /><ref name="mdn">[https://developer.mozilla.org/zh-TW/docs/Glossary/TypeScript TypeScript – MDN Web Docs]</ref>TypeScript 代码通过编译器转译为 [[JavaScript]] 代码,可运行在任何浏览器、任何操作系统以及任何支持 JavaScript 的宿主环境上。<ref name="baidu" /><ref name="typescript-lang">[https://www.typescriptlang.org/ TypeScript 官方网站]</ref>该语言由 Anders Hejlsberg 主导设计,旨在帮助开发者更高效地构建和管理大规模 JavaScript 应用程序。<ref name="typescript-lang" />
 
== 历史 ==
 
TypeScript 由微软公司开发,于2012年10月首次公开发布。<ref name="baidu" />它的诞生源于使用 JavaScript 开发大型项目时所面临的挑战——随着项目规模的增长,JavaScript 动态类型特性导致的类型相关错误越来越难以在开发阶段被及时发现。<ref name="baidu" /><ref name="handbook">[https://www.typescriptlang.org/docs/handbook/intro.html The TypeScript Handbook]</ref>TypeScript 通过引入静态类型系统,使得开发工具(如 [[IDE]])能够在代码运行前就捕获潜在的类型错误,从而提升了大型应用的开发效率和代码质量。<ref name="handbook" />
 
2025年3月,微软宣布将大幅提升 TypeScript 编译器的性能。<ref name="baidu" />2026年3月23日,微软发布了 TypeScript 6.0,这是基于原有 JavaScript 代码库的最后一个版本,作为一个过渡版本,旨在为向 7.0 版本迁移做准备。<ref name="baidu" />同日,微软宣布未来的 TypeScript 7.0 将使用 Go 语言重写底层编译器,预计编译速度将比 TypeScript 6.0 快约 10 倍。<ref name="baidu" />2026年4月,微软发布了 TypeScript 7.0 的 Beta 版本。<ref name="baidu" />
 
== 设计目标 ==
 
TypeScript 的核心设计目标是成为 JavaScript 程序的静态类型检查器——即在代码运行之前运行的工具,用于确保程序中的类型是正确的。<ref name="handbook" />它在不改变 JavaScript 运行时行为的前提下,提供了一套类型系统,使开发者能够更早地发现和修复错误。<ref name="mdn" />
 
具体而言,TypeScript 的设计遵循以下原则:
 
*  **JavaScript 的超集**:所有合法的 JavaScript 代码在语法上都是合法的 TypeScript 代码,TypeScript 与 JavaScript 的运行时行为完全相同。<ref name="mdn" />
*  **可选的静态类型**:开发者可以自由选择是否添加类型注解,类型系统是渐进式的。<ref name="typescript-lang" />
*  **类型推断**:TypeScript 能够自动推断许多类型,减少了显式类型注解的需求。<ref name="mdn" />
*  **编译时类型检查**:类型检查发生在编译阶段,编译后生成的 JavaScript 代码中不包含类型信息。<ref name="mdn" />
 
== 主要特性 ==
 
=== 类型系统 ===
 
TypeScript 的类型系统是其最核心的特性。它支持多种类型,包括基本类型(如 `string`、`number`、`boolean`)、数组、元组、枚举、`any`、`void`、`never` 等。<ref name="mdn" />TypeScript 采用结构类型系统(也称为“鸭子类型”),即类型的兼容性取决于其成员结构而非显式声明。<ref name="handbook" />
 
=== 类型推断 ===
 
TypeScript 可以在许多情况下自动推断变量的类型,无需开发者显式注解。例如,当创建一个变量并赋予一个特定值时,TypeScript 会将该值作为其类型。<ref name="mdn" /><ref name="typescript-js">[https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html TypeScript for JavaScript Programmers]</ref>
 
=== 接口与泛型 ===
 
TypeScript 支持接口(Interface),用于定义对象的结构,以及泛型(Generics),用于创建可重用的、类型安全的组件。<ref name="handbook" />
 
=== 声明文件 ===
 
TypeScript 支持为已存在的 JavaScript 库编写声明文件(以 `.d.ts` 为扩展名),从而为这些库提供类型信息,使其能够在 TypeScript 项目中被类型安全地使用。<ref name="baidu" />
 
=== 对现代 ECMAScript 特性的支持 ===
 
TypeScript 支持许多 ECMAScript 新特性,并允许开发者将代码编译为不同版本的 JavaScript(如 ES5、ES6 等),以兼容不同的运行环境。<ref name="baidu" />
 
== 开发工具与生态系统 ==
 
TypeScript 编译器(`tsc`)是官方的参考实现,可通过 npm 安装使用。<ref name="typescript-lang" />主流的代码编辑器(如 Visual Studio Code、WebStorm 等)和构建工具(如 Webpack、Rollup 等)都对 TypeScript 提供了良好的支持。<ref name="handbook" />
 
TypeScript 拥有活跃的开源社区,其源代码托管在 GitHub 上。<ref name="typescript-lang" />微软为 TypeScript 项目采用了开源行为准则。<ref name="typescript-lang" />
 
== 参考文献 ==
 
<references />

2026年7月15日 (三) 21:05的版本

板块