学习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 的交互问题?
这是下篇文篇的想说的问题。
学习typescript(一)的更多相关文章
- 在WisOne平台上学习TypeScript
TypeScript是微软公司推出的开源的类型化脚本语言,目的是用于为弱类型的javaScript提供强类型的识别和感知功能,同时它提供了类.接口.继承等相关在javaScript中不容易实现的功能, ...
- 学习TypeScript,笔记一:TypeScript的简介与数据类型
该文章用于督促自己学习TypeScript,作为学笔记进行保存,如果有错误的地方欢迎指正 2019-03-27 16:50:03 一.什么是TypeScript? TypeScript是javasc ...
- 学习typescript(二)
学习typescript(二) ts 与 js 交互 ts 调用 js module使用 分为两种情况: ts 调用自己写的 js ts 调用别人写的 js 也就通过 npm 安装的 第一种情况处理如 ...
- 被迫开始学习Typescript —— interface
一开始以为,需要使用 class 来定义呢,学习之后才发现,一般都是使用 interface 来定义的. 这个嘛,倒是挺适合 js 环境的. 参考:https://typescript.bootcss ...
- 「非软文」零基础学习TypeScript(源码开源)
今天,这篇文章篇幅很短,主要开放我最近学习整理TypeScript源码. 源码地址 https://github.com/maomincoding/typeScript_study 更多内容请见原文, ...
- 跟着Vam一起学习Typescript(第一期)
一.安装环境与配置1.命令行安装 npm i -g typescript 2.快捷打开Vs Code编辑器 创建一个项目文件夹,在该文件夹下打开命令行工具,使用code .命令快速打开编辑器(如果计算 ...
- 学习TypeScript 笔记
TypeScript 什么是TypeScript TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准. TypeScript 由微软开发的自由和开源的编程 ...
- 【One by one系列】一步步学习TypeScript
TypeScript Quick Start 1.TypeScript是什么? TypeScript是ES6的超集. TS>ES7>ES6>ES5 Vue3.0已经宣布要支持ts,至 ...
- 初步学习TypeScript
使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...
随机推荐
- POJ3728 THE MERCHANT LCA RMQ DP
题意简述:给定一个N个节点的树,1<=N<=50000 每个节点都有一个权值,代表商品在这个节点的价格.商人从某个节点a移动到节点b,且只能购买并出售一次商品,问最多可以产生多大的利润. ...
- c和c++字符串分割
1.c++版本,第一个参数为待分割的字符串 , 第二个参数为分割字符串 std::vector<std::string> split(const std::string& s, c ...
- HttpPost 传输Json数据并解析
转自:https://blog.csdn.net/qq_35114086/article/details/52317311 这里写个测试用例模拟外部调用,通过httppost 传递一个json封装的表 ...
- css一些不为人所熟知的知识点
1.设置a标签内字体水平居中:text-algin:center 2.设置a标签内字体水平居中:line-height:height 3.如何设置td宽度固定<table style=" ...
- UVa-10954
10954 - Add All Time limit: 3.000 seconds Yup!! The problem name reflects your task; just add a set ...
- python读写mysql总结
一.MySQLdb包的安装 1. 在win环境下,下载MySQL-python-1.2.3,有两种方式: (1) 下载src源码.tar.gz(这个源码需要build编译再安装.egg包(当于.jar ...
- python-re使用举例
代码: import re text = "JGood is a handsome boy, he is cool, clever, and so on..." print(tex ...
- Spring Boot 学习系列(08)—自定义servlet、filter及listener
此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 传统的filter及listener配置 在传统的Java web项目中,servlet.filter和li ...
- 如何有效提升Unity Gear VR游戏性能
http://www.vr186.com/vr_news/vr_technical_area/1093.html 好的,所以你决定用 Unity 来做一个 VR 游戏,并选定了三星 Gear vr 为 ...
- [Xcode 实际操作]二、视图与手势-(10)UITapGestureRecognizer手势之单击
目录:[Swift]Xcode实际操作 本文将演示使用视图的手势功能,完成视图的交互操作. import UIKit class ViewController: UIViewController { ...