环境

必装软件

  1. node,推荐 node 8.0
  2. npm,推荐 npm 5.0
  3. git, 最新版
  4. vscode, 编绎器

必装包

  1. tsc: npm install -g typescript
  2. typings: npm install -g typings
  3. ts-node: npm install -g ts-node

说明一下

  1. tsc 为 typescript 的编绎绎,它能把 typescript 编绎成 js。
  2. typings 为下截别人标好的类型说明。
  3. ts-node 为开发环境中不用编绎成 js 直接运行 typescript 环境。

如何使用

新项目,这里指的项目都使用typecript进行开发

  1. 新建文件夹:mkdir ts-test && cd ts-test
  2. 初始化 node 项目:npm init
  3. 设置初始化 'tsc --init',会生成一个 tsconfig.json 文件,这个文件很重要,就是 tsc 的配置文件,内容下面会说。
  4. 运行版本控制:'git init',git add -A, git commit -m "init"
  5. 新建一个文件 test.ts 文件
console.log('hello, world');
  1. 运行命令:tsc test.ts,编绎文件,生成文件会在当前文件夹生成 test.js
  2. 运行命令: node test.js ,你会看见 hello, world

这样一个小小的环境就建起来了,现在我们考虑下优化一下它。

  1. 在项目中,要控制生成文件的目录

    这个需要在 tsconfig.json 中的 compilerOption 中添加 "outDir": "dist",然后运行命令: tsctsc会自动加载 tsconfig.json。这样就会在当前目录下生成 dist/test.js,如果不加这行运行命令,跟 tsc test.ts 的效果是一致的。

  2. 在项目中,会控制 .ts 文件的目录和不需要编绎文件的目录

    如果,不设置这两个选项,运行 tsc 命令后,当前所有文件夹下的文件,当你的 node_modules 很大的时候,这样非常慢。因此需要指定需要的目录和不需要的目录,在 tsconfig.json 中增加 includeexclude 选项,这两个选项为数组,如下:

    "exclude": [
"node_modules/",
"dist/"
],
"include": [
"src/**/*.ts" // 这里 /**/的意思为任何一个子目录的 `*.ts` 文件
]
  1. 开发项目中编绎 .ts 文件太麻烦,能不能直接运行

    现在就是 ts-node 发挥作用的时候,简单的把 node 换成 ts-node 就可以了。例如: ts-node src/test2.ts

  2. 如何引用 npm 上面的库?

    这里会有问题,node 中加载库的标准是 cmd , 实现是 require。这在 ts 中不支持,解决这个问题有两个方案:

    第一方案:

    在项目中任何一个 .ts 中增加如下语句:

declare function require(path: string): any;

这样你可以自由的使用 require

第二方案:

使用 ts 自已的导入库的语法。

import foo = require("foo");

注:

我是 cmd 的支持者,我认为 es6import 不支持动态导入是一个大问题。

已有一个 js 项目,如何体验 typescript

主要解决问题,ts 与 js 的交互问题?

这是下篇文篇的想说的问题。

github测试库

学习typescript(一)的更多相关文章

  1. 在WisOne平台上学习TypeScript

    TypeScript是微软公司推出的开源的类型化脚本语言,目的是用于为弱类型的javaScript提供强类型的识别和感知功能,同时它提供了类.接口.继承等相关在javaScript中不容易实现的功能, ...

  2. 学习TypeScript,笔记一:TypeScript的简介与数据类型

    该文章用于督促自己学习TypeScript,作为学笔记进行保存,如果有错误的地方欢迎指正 2019-03-27  16:50:03 一.什么是TypeScript? TypeScript是javasc ...

  3. 学习typescript(二)

    学习typescript(二) ts 与 js 交互 ts 调用 js module使用 分为两种情况: ts 调用自己写的 js ts 调用别人写的 js 也就通过 npm 安装的 第一种情况处理如 ...

  4. 被迫开始学习Typescript —— interface

    一开始以为,需要使用 class 来定义呢,学习之后才发现,一般都是使用 interface 来定义的. 这个嘛,倒是挺适合 js 环境的. 参考:https://typescript.bootcss ...

  5. 「非软文」零基础学习TypeScript(源码开源)

    今天,这篇文章篇幅很短,主要开放我最近学习整理TypeScript源码. 源码地址 https://github.com/maomincoding/typeScript_study 更多内容请见原文, ...

  6. 跟着Vam一起学习Typescript(第一期)

    一.安装环境与配置1.命令行安装 npm i -g typescript 2.快捷打开Vs Code编辑器 创建一个项目文件夹,在该文件夹下打开命令行工具,使用code .命令快速打开编辑器(如果计算 ...

  7. 学习TypeScript 笔记

    TypeScript 什么是TypeScript TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准. TypeScript 由微软开发的自由和开源的编程 ...

  8. 【One by one系列】一步步学习TypeScript

    TypeScript Quick Start 1.TypeScript是什么? TypeScript是ES6的超集. TS>ES7>ES6>ES5 Vue3.0已经宣布要支持ts,至 ...

  9. 初步学习TypeScript

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

随机推荐

  1. bzoj 2155 Xor

    题目大意: 求一条从$1 \rightarrow n$的路径是异或和最大 思路: 先随便求一棵生成树,然后求出所有环,对于所有环都可以去转一圈只取到这个环的贡献 那么就是线性基裸题了 #include ...

  2. 【EOJ Monthly 2018.2 (Good bye 2017)】

    23333333333333333 由于情人节要回家,所以就先只放代码了. 此题是与我胖虎过不去. [E. 出老千的 xjj] #include<cstdio> #include<c ...

  3. python程序的pypy加速

    我们知道,python作为一种几乎是脚本语言的语言,其优点固然有,但是其有一个最大的缺点,就是运行速度没有办法和c,c++,java比.最近在些一些代码的时候也是碰到了这样的问题. 具体而言,pyth ...

  4. poj 2420 A Star not a Tree? —— 模拟退火

    题目:http://poj.org/problem?id=2420 给出 n 个点的坐标,求费马点: 上模拟退火. 代码如下: #include<iostream> #include< ...

  5. spark运行模式之二:Spark的Standalone模式安装部署

    Spark运行模式 Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在集群中,目前能很好的运行在 Yarn和 Mesos 中,当然 Spark 还有自带的 Stan ...

  6. SpringMVC注解说明

    @controller 通过@controller标注即可将class定义为一个controller类. @RequestMapping value 表示需要匹配的url的格式. method 表示所 ...

  7. 解决 'chromedriver' executable needs to be in PATH.'报错

    试了把chromedriver.exe放到chrome安装文件下,python安装文件下,然后把路径配到path里,均无用. 最后是修改函数调用得以解决: from selenium import w ...

  8. Ubuntu 下编译libjingle-0.6.14 (转载)

    转自:http://blog.csdn.net/feifei454498130/article/details/8197103 添加依赖库: sudo apt-get install build-es ...

  9. MySQL Bug剖析之Slave节点并行复制死锁

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 有天一早,DBA同学就找上来了,说有个DDB集群下的RDS实例Slave节点(从库)死锁了,请求支援.说实话 ...

  10. Docker 网络模型之 macvlan 详解,图解,实验完整

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 上一篇文章我们 ...