上手Typescript,让JavaScript适用于大型应用开发
Typescript
Typescript是一个基于静态类型的,能编译为JavaScript的JavaScript的超集。也就是说任何JavaScript都可以看成是Typescript,IDE能够更好的在编译期间进行错误检查,更适合于大型应用开发。是由微软开发的开源语言,继承了JavaScript的跨平台特性,可运行于任何浏览器,任何宿主,任何系统。
安装
安装Node.js后,在命令行输入命令:
npm install -g typescript
上面的命令就安装好了Typescript,检查是否安装成功,运行如下命令:
tsc -version
使用
现在非常受欢迎的开源编辑器Visual Studio Code对Typescript有很好的支持。在Visual Studio Code中编写Typescript代码,后缀名为ts,示例main.ts
interface Person {
name:string;
age:number;
}
function sortByName(a:Person[]){
var result = a.slice(0);
result.sort(function(x,y){
return x.name.localeCompare(y.name);
});
return result;
}
var persons=[];
persons.push({name:"Tom",age:20});
persons.push({name:"Allen",age:30});
console.log(sortByName(persons));
编辑器自动提示错误
编写好代码后,运行tsc命令将Typescript编译成普通的JavaScript
tsc main.ts
编译后的普通的Javascript
用node main.js运行
使用自动编译
可以在当前目录下创建一个tsc的配置文件,并watch改文件进行自动边编译,那么每次修改了
ts文件之后就会自动编译成js文件。
运行命令
tsc -init
上面的命令会在目录下生成配置文件tsconfig.json
默认编译目标为es5
可以看到编译目标默认为es5,可以调整,所以再也不用担心浏览器兼容的问题。
然后运行命令
tsc -w
就可以自动编译了。
引用普通的JavaScript库
实质上自动提示和报错功能是通过后台的d.ts文件实现的,这是一个修饰文件,没有任何JavaScript实现。
如果我们再Typescript中引用普通的JavaScript的包,那么编辑器不能推断普通JavaScript的类型,这时需要为普通的JavaScript文件添加修饰文件(.d.ts)
示例:如果我们需要在Typescript中引用Person.js库
Person.js
var Person =function(presonData){
this.names=presonData.name;
this.age=presonData.age;
}
Person.prototype.sortByName=function(a){
var result = a.slice(0);
result.sort(function(x,y){
return x.name.localeCompare(y.name);
});
return result;
}
module.exports=Person;
我们可以创建一个同名的修饰文件Person.d.ts文件:
Person.d.ts
type PersonData = {
name:string;
age:number;
}
declare class Person {
constructor(personData:PersonData);
name:string;
age:number;
sortByName(a:Person[]):Person[];
}
export=Person;
修饰文件
在我们的Typescript中引用,可以看到编辑器会自动提示
引用市面上的流行库
像上面所说,如果我们再Typescript中引用市面上流行的JavaScript库,是不需要自己写修饰文件的,所有常用Typescript已经帮我们做好了。
例如需要引用JQuery库
运行如下两个命令即可:
npm install jquery
npm install @types/jquery
在Typescript脚本中引用JQuery,具有自动提示功能
上手Typescript,让JavaScript适用于大型应用开发的更多相关文章
- TypeScript VS JavaScript 深度对比
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...
- Typescript 和 Javascript之间的区别
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...
- TypeScript 和 JavaScript 的区别
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集.JavaScript 和 TypeSc ...
- TypeScript 强类型 JavaScript – Rafy Web 框架选型
今天看到了 AngularJs 2.0 版本将基于 TypeScript 构建 的消息.与同事们对 TypeScript 展开了讨论.本文记录一些个人的想法. 理想的 JavaScript 开发模式 ...
- TypeScript和JavaScript的区别
JavaScript和TypeScript的对比 注:参考https://juejin.im/entry/5a52ed336fb9a01cbd586f9f做的笔记 概要介绍 JavaScript Ja ...
- 《iOS开发全然上手——使用iOS 7和Xcode 5开发移动与平板应用》之Objective-C新手训练营
编写Hello World应用程序通常被觉得,是学习不论什么编程语言的第一步.在这一章,你将创建iOS版的Hello World应用程序作为起步,高速了解Xcode这个开发iOS应用程序的主要工具. ...
- js架构设计模式——理解javascript中的MVVM开发模式
理解javascript中的MVVM开发模式 http://blog.csdn.net/slalx/article/details/7856769 MVVM的全称是Model View ViewMod ...
- TypeScript和JavaScript哪种语言更先进
TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...
- JavaScript应用于asp开发场景
JavaScript应用于asp开发场景 演示代码示例: <%Path="../"%> <!--#include file="../../Inc/Con ...
随机推荐
- Python连载38-协程、可迭代、迭代器、生产者消费者模型
一.生产者消费者模型 import multiprocessing from time import ctime def consumer(input_q): print("Into con ...
- OPC-System.Runtime.InteropServices.COMException:“Error HRESULT E_FAIL has been returned from a call to a COM component.”
Error HRESULT E_FAIL has been returned from a call to a COM component的错误提示,还是因为OPC配置,这次是红框中标签定义错误,应该 ...
- Python--使用四种随机方法(Random)来产生随机价格
import random # 卖橘子的计算器:写一段代码,提示用户输入橘子的价格,# 然后随机生成购买的斤数(5到10斤之间),最后计算出应该支付的金额! # 第一种# orange_price = ...
- 注解@Async解决异步调用问题
序言:Spring中@Async 根据Spring的文档说明,默认采用的是单线程的模式的.所以在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的. 那么当多个任务的执行势必会相互影响. ...
- H2 数据库使用简介
博客地址:http://www.moonxy.com 一.前言 H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中.H2 主要有如下三 ...
- 控制执行流程之switch语句
switch语句,同时也是一种选择性语句,其根据整数表达式的值(整数选择因子)选择一段代码去执行.整数选择因子为int类型或者char类型.
- MySQL性能优化以及常用命令
1.将查询操作SELECT中WHERE条件后面和排序字段建立索引 2.按需查询,需要哪个字段就查哪个字段,禁止使用"SELECT * " 3.数据库引擎最好选用InnoDB,少用M ...
- Linux中安装传输的命令行工具
创建lrzsz目录: mkdir /usr/local/lrzsz 进入lrzsz目录: cd /usr/local/lrzsz 下载lrzsz压缩包: wget http://www.ohse.de ...
- 深度汉化GCompris-qt,免费的幼儿识字软件
1 需求 因为有个小孩上幼儿园了,想开始教他一些汉语拼音和基本的汉字,但通过一书本和卡片又有些枯燥乏味,于上就上网搜索一些辅助认字的应用,还购买了悟空识字APP,在用的过程中发现他设置了很严格的关卡, ...
- zookeeper特性与节点说明
一.zookeeper概要.背景及作用 zookeeper产生背景: 项目从单体到分布式转变之后,将会产生多个节点之间协同的问题.如: 每天的定时任务由谁哪个节点来执行? RPC调用时的服务发现? 如 ...