type 类型别名

最后更新:2026-10-22

type 类型别名

type 给任意类型起名字:对象、联合、元组、函数、字面量都能起名,是适用范围最广的类型命名方式,与 interface 并列。

分组类型组合
类型语法
严格模式不需要

ℹ️ 说明 编辑器将 TypeScript 转译为 JavaScript 后运行(不做类型检查);类型检查结果见示例 Output。

📝 语法

type ID = string | number;
type Point = { x: number; y: number };
const origin: Point = { x: 0, y: 0 };

⚙️ 参数

type X = T等号右侧可以是任何类型表达式,包括联合、交叉、元组、条件类型

返回值:无返回值——type 是纯类型层概念,编译后消失。

▶ 示例

修改下面的代码,点击试一试查看转译运行结果:

输出:

#42 #A1 0 0

(转译后运行输出;给 origin 多写一个 z: 1 会触发多余属性检查)

💡 要点

ℹ️ 说明 type 能表达 interface 表达不了的联合、元组、映射、条件类型;interface 独有的声明合并 type 没有。
💡 提示 给复杂结构起名能让报错信息变短——错误里显示的是别名而不是一大段结构。
⚠️ 注意 同名 type 不能重复声明(直接报重复定义),不像 interface 会合并;需要"渐进扩展"时用交叉类型叠加。
更多案例即将上线。

📚 相关教程

❓ 常见问题

Q type 和 interface 到底该用哪个?
A 团队统一即可。经验法则:纯对象形状且可能被库合并扩展时用 interface;涉及联合、工具类型组合时必须用 type。
Q type 可以递归引用自己吗?
A 可以:type JSON = string | number | boolean | null | JSON[] | { [k: string]: JSON }。interface 同样支持递归。
Q type 起的名字会影响运行时吗?
A 不会。type 纯粹是编译期别名,转译后完全消失,运行时只有值本身。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏