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适用于大型应用开发的更多相关文章

  1. TypeScript VS JavaScript 深度对比

    TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...

  2. Typescript 和 Javascript之间的区别

    TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...

  3. TypeScript 和 JavaScript 的区别

    TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集.JavaScript 和 TypeSc ...

  4. TypeScript 强类型 JavaScript – Rafy Web 框架选型

    今天看到了 AngularJs 2.0 版本将基于 TypeScript 构建 的消息.与同事们对 TypeScript 展开了讨论.本文记录一些个人的想法. 理想的 JavaScript 开发模式 ...

  5. TypeScript和JavaScript的区别

    JavaScript和TypeScript的对比 注:参考https://juejin.im/entry/5a52ed336fb9a01cbd586f9f做的笔记 概要介绍 JavaScript Ja ...

  6. 《iOS开发全然上手——使用iOS 7和Xcode 5开发移动与平板应用》之Objective-C新手训练营

    编写Hello World应用程序通常被觉得,是学习不论什么编程语言的第一步.在这一章,你将创建iOS版的Hello World应用程序作为起步,高速了解Xcode这个开发iOS应用程序的主要工具. ...

  7. js架构设计模式——理解javascript中的MVVM开发模式

    理解javascript中的MVVM开发模式 http://blog.csdn.net/slalx/article/details/7856769 MVVM的全称是Model View ViewMod ...

  8. TypeScript和JavaScript哪种语言更先进

    TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...

  9. JavaScript应用于asp开发场景

    JavaScript应用于asp开发场景 演示代码示例: <%Path="../"%> <!--#include file="../../Inc/Con ...

随机推荐

  1. NGUI_基础入门学习

    目录 1. Control Widgets 控制部件2. Anchors 锚3. Interaction 交互4. Menu 菜单5. Controller Input 控制器的输入6. Lights ...

  2. django学之路01--环境安装和pycharm运行django项目

    1. 环境安装 1).virtualenv安装 C:\Users\Administrator>pip install virtualenv Collecting virtualenv Using ...

  3. java项目打包

    http://blog.csdn.net/qq_34845382/article/details/53885907 自己用Rinnable JAR file 方法也可以.更简单.直接点击Finish即 ...

  4. 利用Python进行数据分析:【NumPy】

    一.NumPy:数组计算1.NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础.2.NumPy的主要功能: # ndarray,一个多维数组结构,高效且节省空间 # 无 ...

  5. Eureka参数配置->Client端参数

     1.基本参数配置列表: 参数 默认值 说明 eureka.client.availability-zones    告知client有哪些region及availability-zones,支持配置 ...

  6. 阿里云安装RocketMQ

    说明: 我的阿里云是centos 6.9 jdk 1.8.0_192-b12(安装教程参照:https://www.cnblogs.com/kingsonfu/p/9801556.html) mave ...

  7. Spring Cloud 初认识

    Spring Cloud是一个继承了众多开源的框架,其利用了Springboot开发的便利性来实现分布式服务功能,是一套开放.易部署.易维护的分布式开发工具包,而且有成熟的社区且社区活跃度很高.Spr ...

  8. SpringBootSecurity学习(13)前后端分离版之JWT

    JWT 使用 前面简单介绍了把默认的页面登录改为前后端分离的接口异步登录的方法,可以帮我们实现基本的前后端分离登录功能.但是这种基本的登录和前面的页面登录还有一个一样的地方,就是使用session和c ...

  9. 利用threading模块开线程

    一多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性. 二.开启多线程的两种方式 1.创建线程的开销比创建进程的开销小, ...

  10. Python 正则re匹配中文、英式数字

    #coding:utf-8 import re s = u''' 或多或少的好好读书电锯惊魂20202 和水电费后是否会时候1212没收到风10.12海大富的是粉红色的和办法的1244525.000 ...