学习typescript(一)
环境
必装软件
- 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 的交互问题?
这是下篇文篇的想说的问题。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号