TypeScript 基本语法

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声明命名空间
moduleES 模块或内部模块(旧语法)
requireCommonJS 引入语法
declare告诉编译器“这个变量由外部提供”
global声明全局变量作用域
from用于模块导入
offor...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;
  • letconst 有块级作用域,推荐使用;

  • 类型注解让变量的使用更安全可靠;

  • 支持类型推断(如 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;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值