环境
必装软件
- node,推荐 node 8.0
- npm,推荐 npm 5.0
- git, 最新版
- vscode, 编绎器
必装包
- tsc:
npm install -g typescript
- typings:
npm install -g typings
- ts-node:
npm install -g ts-node
说明一下
- tsc 为 typescript 的编绎绎,它能把 typescript 编绎成 js。
- typings 为下截别人标好的类型说明。
- ts-node 为开发环境中不用编绎成 js 直接运行 typescript 环境。
如何使用
新项目,这里指的项目都使用typecript进行开发
- 新建文件夹:
mkdir ts-test && cd ts-test
。 - 初始化
node
项目:npm init
。 - 设置初始化 'tsc --init',会生成一个
tsconfig.json
文件,这个文件很重要,就是tsc
的配置文件,内容下面会说。 - 运行版本控制:'git init',
git add -A
,git commit -m "init"
。 - 新建一个文件
test.ts
文件
console.log('hello, world');
- 运行命令:
tsc test.ts
,编绎文件,生成文件会在当前文件夹生成test.js
。 - 运行命令:
node test.js
,你会看见hello, world
。
这样一个小小的环境就建起来了,现在我们考虑下优化一下它。
在项目中,要控制生成文件的目录
这个需要在tsconfig.json
中的compilerOption
中添加"outDir": "dist"
,然后运行命令:tsc
,tsc
会自动加载tsconfig.json
。这样就会在当前目录下生成dist/test.js
,如果不加这行运行命令,跟tsc test.ts
的效果是一致的。在项目中,会控制
如果,不设置这两个选项,运行.ts
文件的目录和不需要编绎文件的目录tsc
命令后,当前所有文件夹下的文件,当你的node_modules
很大的时候,这样非常慢。因此需要指定需要的目录和不需要的目录,在tsconfig.json
中增加include
和exclude
选项,这两个选项为数组,如下:
"exclude": [ "node_modules/", "dist/" ], "include": [ "src/**/*.ts" // 这里 /**/的意思为任何一个子目录的 `*.ts` 文件 ]
开发项目中编绎
现在就是.ts
文件太麻烦,能不能直接运行ts-node
发挥作用的时候,简单的把node
换成ts-node
就可以了。例如:ts-node src/test2.ts
- 如何引用
npm
上面的库? 这里会有问题,node
中加载库的标准是cmd
, 实现是require
。这在ts
中不支持,解决这个问题有两个方案: 第一方案: 在项目中任何一个.ts
中增加如下语句:
declare function require(path: string): any;
这样你可以自由的使用 require
第二方案:
使用ts
自已的导入库的语法。 import foo = require("foo");
注:
我是cmd
的支持者,我认为 es6
中 import
不支持动态导入是一个大问题。 已有一个 js 项目,如何体验 typescript
主要解决问题,ts 与 js 的交互问题?
这是下篇文篇的想说的问题。