让你的项目使用Ts吧
9012年都过半了,还不会用ts你就out了
why ?
- 三大框架angular2以后的版本完全是用ts开发的,
- vue对ts的支持也越来越好,
- React也有TSX组件
还在犹豫什么
本文不涉及框架内容,因为框架的cli已经帮你搭好了ts环境。。。
本文只教你如何在一个demo里搭建Ts环境,好了,我们开始吧
第一步,安装
全局安装typescript
npm install typescript -g
安装好以后,在你的项目里就可以使用tsc 命令了
tsc [ts文件名]
使用上面的命令就可以把某个ts文件编译成js文件
tsc
这是编译所有ts文件
第二步, 配置文件
恭喜你,走完第一步你已经成功一大半了!
新建一个json类型的配置文件, 文件名是tsconfig.json。
{
"compilerOptions": { // 编译选项
"target": "es2016", // 配置编译目标代码的版本标准
"module": "commonjs", // 配置编译目标使用的模块化标准
"lib": ["es2016"]
}
}
最简单的配置是这样,后面可以根据需求加上你需要的配置。
:::tip
注意!!!加入配置文件后,使用tsc 命令编译某个ts文件时不需要带上.ts文件后缀, 否则会忽略配置文件
:::
插播一条重要内容
我们的ts项目如果使用了第三方库,比如lodash,mock,jquery什么的,这些第三方库并不是用ts写的,
它们是用js写的,没有ts的类型检查, 怎么办?
有办法,官方有一个@types的类型库,它包含了很多对js代码的类型描述
比如你想用jquery, 你就可以安装@types/jquery。
ts和js分开
开发过程中我们肯定希望源代码和编译后的代码分开,加入以下两个配置选项
include : 需要编译的文件目录
outDir: 编译后的文件目录
{
"compilerOptions": { // 编译选项
"target": "es2016", // 配置编译目标代码的版本标准
"module": "commonjs", // 配置编译目标使用的模块化标准
"lib": ["es2016","dom"], // 配置环境
"outDir": "./dist"
},
"include": ["./src"]
}
第三步 简化开发流程
如果你只是想用ts写个hello world, 你已经可以做到了
假设你有个hello.ts文件,文件内容是console.log('hello world');
命令行依次执行:
tsc
node ./dist/hello.js
命令行就可以打印出 hello world
截至第二步, 每次修改文件你都要执行两步:
- 编译文件 tsc
- 执行文件 node ./dist/文件名
我们可以使用第三方库来简化这个流程
ts-node
安装 npm install ts-node -D
命令行执行
ts-node /src/hello.ts
它可以在内存中直接编译ts并执行编译后的文件(不会生成dist目录)
这样还不够好,虽然它可以帮我们编译并执行,但是它不能检测代码的变化
nodemon
安装 npm install nodemon -D
命令行执行
nodemon --exec --watch src -e ts ts-node /src/hello.ts
--watch src表示只监控src文件夹下的文件
-e ts表示只监控ts文件的改变
这样你随便改hello.ts的内容它都会自动编译并运行。
最后把这条命令写在package.json的script里,完美收官!
结语
至此相信你对ts已经不那么陌生了,下篇和大家一起结合React和Ts开发个小demo,
帮你熟悉项目实战。
让你的项目使用Ts吧的更多相关文章
- vsCode怎么为一个前端项目配置ts的运行环境
vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...
- angular项目中ts的配置编译tsconfig.json
{ "compilerOptions": { /* 基本选项 */ "target": "es5", // 指定 ECMAScript 目标 ...
- angular4.0项目main.ts详解
main.ts负责引导整个angular应用的起点 // 导入enableProdMode用来关闭angular开发者模式 import { enableProdMode } from '@angul ...
- 公共项目开发:我为什么用 JSDoc,而不用 ts
公共模块,通常会被多个项目.不同的开发人员使用,所以开发公共模块时,你自己会用还不够,要让所有人都能很快的知道怎么去使用,这一点很关键.通常会从3个方面做到这点: 精心分割代码逻辑,遵循开闭原则: 变 ...
- vue项目中使用ts(typescript)入门教程
最近项目需要将原vue项目结合ts的使用进行改造,这个后面应该是中大型项目的发展趋势,看到一篇不错的入门教程,结合它并进行了一点拓展记录之.本文从安装到vue组件编写进行了说明,适合入门. 1.引入T ...
- 视音频编解码学习工程:TS封装格式分析器
=====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ...
- 原有vue项目接入typescript
原有vue项目接入typescript 为什么要接入typescript javascript由于自身的弱类型,使用起来非常灵活. 这也就为大型项目.多人协作开发埋下了很多隐患.如果是自己的私有业务倒 ...
- [转]Angular项目目录结构详解
本文转自:https://blog.csdn.net/yuzhiqiang_1993/article/details/71191873 版权声明:本文为博主原创文章,转载请注明地址.如果文中有什么纰漏 ...
- Egret入门(三)--创建HelloWorld项目(4.0-使用Egret Wing)
准备 编辑器: Egret Wing3(4.0.3) 需要下载安装 语言: TepyScript(JS的超集,参考手册http://bbs.egret.com/thread-1441-1-1.html ...
随机推荐
- ABP进阶教程11 - 小结
点这里进入ABP进阶教程目录 效果预览 至此,ABP进阶教程的查询/分页/排序/导出/打印示例已完成,效果如下 登录 首页 办公室信息 院系信息 课程信息 教职员信息 学生信息 新增 修改 删除 查询 ...
- 我认为现代IDE编辑器应该具有的几个特性和Visual studio 2010增强
工作中要使用 VS 2010, 有好多年没有使用Visual studio 了, 试了一小会, 发现VS 2010 缺少不少现代IDE应有的特性, 我认为重要的是下面几个特性, VS2010 已经是1 ...
- Python—函数基础篇
https://www.cnblogs.com/littlefivebolg/p/9017449.html Python 解释器的内置函数 内置函数 作用 实例 abs() 返回数字的绝对值. abs ...
- stl源码学习(版本2.91)--list
stl源码学习(版本2.91)--list 一,阅读list()构造函数的收获 1,默认构造函数的作用和被调用的时机 struct no{ no(int i){} //no(){ // std::co ...
- [视频教程] docker端口映射与目录共享运行PHP
当我们在容器中安装完环境以后,需要在宿主机的端口上访问到容器中的端口,这时候就需要做端口映射.在开发代码的时候,需要频繁的修改代码,因此要把宿主机上的代码目录共享到容器中,这样容器里面就能访问的到代码 ...
- PHP 安装xdebug
xdebug官网: https://xdebug.org 安装步骤如下: 使用 phpinfo() 打印出PHP相关信息, 全选, 复制 打开 xdebug 网站: https://xdebug.or ...
- 运行java程序
使用方式: java类名 硬盘上有HelloWorld.class,那么类名就是HelloWorld java HelloWorld[运行先到class路径下] 一定要注意:java命令后面跟的不是文 ...
- 有用的link
资料 了解oi 刘汝佳代码仓库(紫书 c++参考手册 2018年洛谷日报索引 2019年洛谷日报索引 (其他oj: luogu 虚拟判官(名校oj都有 离线bzoj题库 (有时候进不去请点:rxz大爷 ...
- jwt揭秘(含源码示例和视频)
JSON Web Tokens,是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明.目前,jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项目. 1. jwt认证流程 在项 ...
- HTML与CSS学习笔记(4)
1.浏览器前缀 浏览器厂商以前就一直在实时CSS3,但它还未成为真正的标准.为此,当有一些CSS3样式与法还在波动的时候,他们提出了针对不同浏览器的前缀,来解决兼容性问题. 即:CSS3去兼容不同的浏 ...