当前位置: 首页 > news >正文

TypeScript 环境搭建

Typescript环境支持有很多种选择,可以基于babel、也可以基于tsc,或者直接使用swc,如果是使用webpack,我们可以借助 ts-loader。

通常用两种模式进行Typescript编译,tsc和babel。

1. 基于TypeScript CLI 的环境搭建

tsc是Typescript库提供的命令行工具,使用tsc命令可以将ts文件编译输出为js,并能根据类型定义,输出类型定义文件。

TypeScript提供了官方的命令行工具tsc,用于编译TypeScript 代码。

以下是详细的搭建步骤:

1.1. 安装 TypeScript

首先,在项目目录下初始化一个新的npm项目并安装TypeScript:

mkdir my-ts-project
cd my-ts-project
npm init -y
npm install typescript --save-dev

1.2. 创建 tsconfig.json 文件

tsconfig.json 文件用于配置 TypeScript 编译选项。在项目根目录下创建 tsconfig.json 文件,并添加以下内容:

{"compileroptions":{"target":"ES6","module":"commonjs","strict": true,"esModuleInterop": true,"outDir":"./dist"},"include": ["src /**/*"],"exclude": ["node modules"]
}

 1.3. 创建TypeScript 源文件

在项目根目录下创建 src 目录,并在其中添加一个示例 TypeScript 文件 index.ts:

// src/index.ts
const message:string="Hello, Typescript!";
console.log(message);

1.4. 编译Typescript 代码

在 package.json 文件中添加一个脚本来编译 TypeScript 代码:

{"scripts": {"build":"tsc"}
}

运行以下命令来编译 TypeScript 代码:

pnpm build

编译后的 JavaScript 文件将输出到 dist 目录中。

2. 基于 Babel 的环境搭建

Babel 是一个 JavaScript 编译器,可以将 TypeScript 编译为 JavaScript。

2.1. 安装必要的依赖

首先,在项目目录下初始化一个新的 npm 项目并安装 Babel 和 TypeScript 相关的依赖:

mkdir my-babel-ts-project
cd my-babel-ts-project
npm init -y
npm install @babel/core @babel/cli @babel/preset-env @babel/preset-typescript --save-dev

2.2. 创建 Babel 配置文件

在项目根目录下创建.babelrc 文件,并添加以下内容:

{"presets": ["@babel/preset-env","@babel/preset-typescript"]
}

2.3. 创建 TypeScript 源文件

在项目根目录下创建src目录,并在其中添加一个示例TypeScript文件index.ts:

// src/index.ts
const message: string = "Hello, Babel and TypeScript!";
console.log(message);

2.4. 编译 TypeScript 代码

在 package.json 文件中添加一个脚本来使用 Babel 编译 TypeScript 代码:

{"scripts": {"build": "babel src --out-dir dist --extensions '.ts'"}
}

运行以下命令来编译 TypeScript 代码:

npm run build

编译后的 JavaScript 文件将输出到 dist 目录中。

通过上述步骤,可以分别基于 TypeScript CLI 和 Babel 搭建 TypeScript 的开发环境。两种方法各有优劣,TypeScript CLI 更加直接和官方支持,而 Babe| 可以更灵活地与现有的 Babel 工具链集成。选择哪种方法取决于具体的项目需求和开发者的偏好。

相关文章:

  • 嵌入式硬件篇---TOF|PID
  • 《智能网联汽车 自动驾驶系统通用技术要求》 GB/T 44721-2024——解读
  • LC-3 中常见指令
  • 量化交易系统开发经验分享--回测框架调研
  • JavaScript 循环语句全解析:选择最适合的遍历方式
  • 代码随想录训练营第二十一天 |589.N叉数的前序遍历 590.N叉树的后序遍历
  • LeetCode 215题解 | 数组中的第K个最大元素
  • Spring Boot 中的重试机制
  • 基于.Net Core开发的GraphQL开源项目
  • istio in action之服务网格和istio组件
  • Spring Boot 集成 Flink CDC 实现 MySQL 到 Kafka 实时同步
  • Linux 常用命令集合
  • 从InfluxDB到StarRocks:Grab实现Spark监控平台10倍性能提升
  • COT思维链:SequentialChain 方法有哪些参数;优化后的提示词
  • 【C语言】(9)—指针3
  • VSCode1.101.0便携版|中英文|编辑器|安装教程
  • 一个.Net开源的关系管理系统
  • 汇编学习——iOS开发对arm64汇编的初步了解
  • go 通过汇编学习atomic原子操作原理
  • AI面经总结-试读
  • 美国4月CPI同比上涨2.3%低于预期,为2021年2月来最小涨幅
  • 茅台1935今年动销达到预期,暂无赴港上市计划!茅台业绩会回应多个热点
  • 《广州大典研究》集刊发展座谈会:“广州学”的传承与创新
  • 上海护师邢红获第50届南丁格尔奖,她为何能摘得护理界最高荣誉
  • 城事 | 重庆新增热门打卡地标,首座熊猫主题轨交站亮相
  • 民生谣言误导认知,多方联动守护清朗——中国互联网联合辟谣平台2025年4月辟谣榜综述