推荐在这里阅读

9012年都过半了,还不会用ts你就out了

why ?

  1. 三大框架angular2以后的版本完全是用ts开发的,
  2. vue对ts的支持也越来越好,
  3. 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


截至第二步, 每次修改文件你都要执行两步:

  1. 编译文件 tsc
  2. 执行文件 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吧的更多相关文章

  1. vsCode怎么为一个前端项目配置ts的运行环境

    vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...

  2. angular项目中ts的配置编译tsconfig.json

    { "compilerOptions": { /* 基本选项 */ "target": "es5", // 指定 ECMAScript 目标 ...

  3. angular4.0项目main.ts详解

    main.ts负责引导整个angular应用的起点 // 导入enableProdMode用来关闭angular开发者模式 import { enableProdMode } from '@angul ...

  4. 公共项目开发:我为什么用 JSDoc,而不用 ts

    公共模块,通常会被多个项目.不同的开发人员使用,所以开发公共模块时,你自己会用还不够,要让所有人都能很快的知道怎么去使用,这一点很关键.通常会从3个方面做到这点: 精心分割代码逻辑,遵循开闭原则: 变 ...

  5. vue项目中使用ts(typescript)入门教程

    最近项目需要将原vue项目结合ts的使用进行改造,这个后面应该是中大型项目的发展趋势,看到一篇不错的入门教程,结合它并进行了一点拓展记录之.本文从安装到vue组件编写进行了说明,适合入门. 1.引入T ...

  6. 视音频编解码学习工程:TS封装格式分析器

    =====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ...

  7. 原有vue项目接入typescript

    原有vue项目接入typescript 为什么要接入typescript javascript由于自身的弱类型,使用起来非常灵活. 这也就为大型项目.多人协作开发埋下了很多隐患.如果是自己的私有业务倒 ...

  8. [转]Angular项目目录结构详解

    本文转自:https://blog.csdn.net/yuzhiqiang_1993/article/details/71191873 版权声明:本文为博主原创文章,转载请注明地址.如果文中有什么纰漏 ...

  9. Egret入门(三)--创建HelloWorld项目(4.0-使用Egret Wing)

    准备 编辑器: Egret Wing3(4.0.3) 需要下载安装 语言: TepyScript(JS的超集,参考手册http://bbs.egret.com/thread-1441-1-1.html ...

随机推荐

  1. android ANR 分析定位问题

    ANR ? android 规定,Activity如果5秒钟之内无法响应屏幕触摸事件或者键盘输入事件,BroadcastReceiver 如果10s中之内还未执行完操作就会出现ANR 定位ANR问题 ...

  2. Android应用打开外部文件

    我们有时候遇到要打开一个文件,我们可以选择用其他应用打开,这时弹出来的应用列表,那么我们如何让自己开发的应用也能出现在里面呢? 第一步:设置启动Activity的intent-filter,给data ...

  3. BayaiM__Oracle ASM操作管理

    BayaiM__Oracle ASM操作管理   BayaiM__Oracle ASM操作管理                                                      ...

  4. python语法区别

    python语法区别: 大小写敏感 (动态语言:python)变量不用声明 p.s: 静态语言(Java)必须声明变量 语句末尾可以不打分号 可以直接进行数学计算 复制.粘贴功能失效,粘贴到别的地方的 ...

  5. 非ssl给163发邮件,报错,无解ing

    #给163发送邮件import smtplibfrom email.mime.text import MIMETextnam='15527721040@163.com'send='1552772104 ...

  6. Keras:

    https://keras.io/zh/layers/core/ keras使用稀疏输入进行训练 2018.06.14 12:55:46字数 902阅读 760 稀疏矩阵 稀疏矩阵是指矩阵中数值为0的 ...

  7. LG4051/BZOJ1031 「JSOI2007」字符加密 后缀数组

    问题描述 BZOJ1031 LG4051 题解 发现这是一个环,根据经验,破环为链,于是字符环变为了字符串 之后对这个复制之后的字符串求后缀数组. $len$代表原字符串长度,代表复制后的字符串长度 ...

  8. fis3 相关

    fis3 静态资源存放 windows: C:\Users\Administrator\AppData\Local\.fis3-tmp

  9. MySQL SQL DLL (数据定义语言)

    CREATE CREATE DATABASE CREATE DATABASE 用于创建数据库 CREATE DATABASE new_database_name; CREATE TABLE CREAT ...

  10. vue项目搭建介绍01

    目录 vue项目搭建介绍01 vue 项目框架环境搭建: 创建项目: vue 项目创建流程: vue项目搭建介绍01 vue 项目框架环境搭建: vue 项目框架: vue django(类似)(vu ...