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. idea解决This file is indented with tabs instead of 4 spaces

    idea上面总是弹出 解决方法: File -> Settings -> Editor -> Code Style -> Java -> Tabs and Indents ...

  2. SqlServer 2014 还原数据库时提示:操作系统返回了错误5,,拒绝访问

    场景 在进行数据库还原时提示: System.Data.SqlError:在对”“尝试”“时,操作系统返回了错误5(拒绝访问) 实现 第一种方案是修改要还原的数据库备份文件的权限. 找到备份文件右击属 ...

  3. js中Math对象常用的属性和方法

    1 Math对象 1.1定义:Math是js的一个内置对象,它提供了一些数学方法. 1.2特性:不能用构造函数的方式创建,无法初始化,只有静态属性和方法 1.3静态属性 1.3.1 Math.PI 圆 ...

  4. Widget 基础

    一切皆Widget Widget 渲染过程 Flutter把视图数据的组织和渲染抽象为三部分,即 Widget.Element 和 RenderObject. Widget Widget 是空间实现的 ...

  5. 2019年9月3日安卓凯立德全分辨率(路况)夏季版C3551-C7M24-3K21J25懒人包

    拷贝懒人包NaviOne文件夹到机器根目录或内存卡根目录下:安装其中的apk程序 2019凯立德C3551-C7M24-3K21J25新组合懒人包 [分辨率]:自适应 [适用系统]:Android2. ...

  6. 生产环境轻量级dns服务器dnsmasq搭建文档

    dnsmasq搭建文档 一.生产环境域名解析问题 之前生产环境设备较少,是通过维护master(192.168.1.1)设备的hosts文件实现的.每次新增设备后,需要在master的hosts文件中 ...

  7. WordCount程序【Spark Streaming版本】

    ~~ 前置 ~~ Spark Streaming 常常对接 :本地文件.HDFS.端口.flume.kafka package february.streaming import org.apache ...

  8. Apache Thrift 的基本使用

    Apache Thrift 的基本使用 可以先看看官网是如何介绍的 The Apache Thrift software framework, for scalable cross-language ...

  9. 品Spring:bean工厂后处理器的调用规则

    上一篇文章介绍了对@Configuration类的处理逻辑,这些逻辑都写在ConfigurationClassPostProcessor类中. 这个类不仅是一个“bean工厂后处理器”,还是一个“be ...

  10. 『TensorFlow2.0正式版教程』极简安装TF2.0正式版(CPU&GPU)教程

    0 前言 TensorFlow 2.0,今天凌晨,正式放出了2.0版本. 不少网友表示,TensorFlow 2.0比PyTorch更好用,已经准备全面转向这个新升级的深度学习框架了. ​ 本篇文章就 ...