TypeScript 是 JavaScript 的超集,为其添加了强类型特性,使代码更加健壮、可维护。本文将从 TypeScript 的基本语法出发,逐步揭示其核心概念与用法,帮助你打下扎实的基础。
一、第一个 TypeScript 程序
创建hello.ts文件,代码如下:
const hello : string = "Hello World!"
console.log(hello)
编译成 JavaScript 文件:
tsc hello.ts
得到如下 js 代码:
var hello = "Hello World!";
console.log(hello);
使用 Node.js 运行:
$ node hello.js
Hello World
二、TypeScript 常用编译参数
可以使用 tsc 命令加参数在命令行编译 .ts 文件,也可以配置在 tsconfig.json 文件中。以下是常见选项说明:
| 参数 | 说明 | 示例 |
|---|---|---|
--help | 显示帮助信息 | tsc --help |
--target | 设置输出 JS 的版本 | tsc index.ts --target ES6 |
--module | 指定模块系统 | tsc index.ts --module commonjs |
--outDir | 指定编译后的文件输出目录 | tsc --outDir ./dist |
--rootDir | 指定源码根目录 | tsc --rootDir ./src |
--watch | 监听文件变化并自动重新编译 | tsc --watch |
--declaration | 生成 .d.ts 类型声明文件 | tsc index.ts --declaration |
--strict | 启用所有严格类型检查选项 | tsc --strict |
--noImplicitAny | 禁止隐式 any 类型 | tsc --noImplicitAny |
--removeComments | 编译时移除注释 | tsc --removeComments |
--sourceMap | 生成 .map 文件用于调试 | tsc --sourceMap |
在大型项目中,一般推荐使用 tsconfig.json 文件统一管理这些参数。
三、TypeScript 保留关键字(Keywords)
TypeScript 保留了大量 JS 和自身扩展的关键字,它们在语言中具有特殊意义,不能作为变量或函数名使用。
break, case, catch, class, const, continue, debugger, default,
delete, do, else, enum, export, extends, false, finally, for,
function, if, import, in, instanceof, new, null, return, super,
switch, this, throw, true, try, typeof, var, void, while, with
TypeScript 扩展关键字:
| 关键字 | 含义 |
|---|---|
abstract | 定义抽象类或方法 |
any | 表示任意类型 |
as | 类型断言 |
asserts | 用于类型保护(Type Predicate) |
async / await | 异步操作 |
readonly | 只读属性 |
unknown | 类型未知值(比 any 更安全) |
never | 表示永远不会返回的类型(如抛出异常) |
infer | 条件类型中的推断声明 |
is | 用于类型保护表达式 |
keyof | 获取对象键的联合类型 |
type | 声明类型别名 |
interface | 接口声明 |
implements | 指定类实现接口 |
namespace | 声明命名空间 |
module | ES 模块或内部模块(旧语法) |
require | CommonJS 引入语法 |
declare | 告诉编译器“这个变量由外部提供” |
global | 声明全局变量作用域 |
from | 用于模块导入 |
of | for...of 中使用 |
四、变量声明与类型注解
TypeScript 支持三种变量声明方式:
var a = 10; // function 作用域,不推荐
let b = 20; // 块级作用域,推荐使用
const c = 30; // 常量,不可重新赋值
TypeScript 支持静态类型,变量在声明时可加上类型标注。
let userName: string = "Alice";
let age: number = 30;
const isActive: boolean = true;
-
let和const有块级作用域,推荐使用; -
类型注解让变量的使用更安全可靠;
-
支持类型推断(如
let x = 5会自动推断为 number 类型)。
五、函数定义与调用
函数是程序的基本构建块,TypeScript 提供了完整的类型支持。
function greet(name: string): string {
return `Hello, ${name}`;
}
console.log(greet("Tom")); // Hello, Tom
支持的函数特性包括:
-
可选参数:
function fn(x?: number) -
默认参数:
function fn(x = 10) -
函数类型表达式:
let fn: (x: number, y: number) => number
箭头函数:
const multiply = (x: number, y: number): number => x * y;
六、语句与表达式
条件语句
if (age >= 18) {
console.log("成年人");
} else {
console.log("未成年");
}
循环语句
for (let i = 0; i < 5; i++) {
console.log(i);
}
switch 语句
let color = "blue";
switch (color) {
case "red":
console.log("红色");
break;
case "blue":
console.log("蓝色");
break;
default:
console.log("未知颜色");
}
七、注释风格与作用
注释提升程序可读性,TypeScript 支持以下注释方式:
// 单行注释:用于简短说明
/*
多行注释:
适合段落说明或屏蔽多行代码
*/
/**
* 文档注释(JSDoc 风格):
* 描述函数参数和返回值
*/
function add(x: number, y: number): number {
return x + y;
}

被折叠的 条评论
为什么被折叠?



