TypeScript是微软官方的一种语言,是JavaScript的超集。它遵循的ECMA Script 6.0是下一代的JavaScript。浏览器还没有完全支持ES6,而ES5是弱类型的语言,还没有面向对象的概念,没有类、没有命名空间等等。所以从微软的角度来说,推出TypeScript是帮助web开发者过渡到未来的web开发技术当中。

生态:微软推出,Google支持(Angular2开发语言)。

特点:面向对象+类型检查(编译时提前发现错误)

好处:支持ES6,强大的IDE支持(类型检查,语法提示,重构)

一、开发环境搭建

搭建开发环境就是安装typescript的compiler。

在线开发:

http://www.typescriptlang.org/play/index.html

安装本地compiler tsc:

1,用npm全局安装typescript: npm install -g typescript

安装成功后就可以可以通过 tsc -v查看版本。当前最新版本是2.7.2

使用:

通过tsc命令编译tsc Hello.ts会编译生成对应的Hello.js文件。

2,可能出现问题

tsc : 无法加载文件 C:\Users\86185\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本。

解决:以管理员身份运行powershell,执行命令set-ExecutionPolicy RemoteSigned,选“是Y”,或者“全是A”。

然后就可以执行tsc命令了

IDE

IDE帮我们执行了tsc命令。

webstorm 201602版本

二、字符串新特性

1、多行字符串

2、字符串模板

在多行字符串中,在${}里写属性或者函数调用,不用再字符串拼接了。开发速度快,可读性好。

3、自动拆分字符串

字符串模板去调用一个方法时,字符串模板里表达式的值会自动赋值给被调用方法的参数

被调用的方法test,有3个参数。 使用字符串拆分特性去调用test方法。

运行一下就能看的字符串被自动拆分后赋值了。

第一个参数是一个字符串数组,被根据&{}表达式的值做了拆分。 数组第一个元素是${myname}之前的字符串,第二个元素是${myname}和${getAge}之间的字符串,第三个是${getAge}之后的字符串。

三、参数新特性

1、参数类型

在参数名称后面使用冒号来指定参数的类型

指定来类型后编译器能给出错误提醒。

编译器也可以根据类型推断机制给出错误提醒。

第一个为变量赋值时自动推断变量类型。

5种基本类型:string,number(没有int),any,boolean,void

void是用来声明方法的返回值为空。

function test(): void {
}

可以在变量后面声明类型,方法的后面声明类型,也可以给方法的参数声明类型。

function test(name:string): void {
}

自定义类型。用的最多的,就是自定义一个类。

class Person{
name: string = 'defaultname';
age: number = 18; } var person: Person = new Person(); console.log(person.age)

好处:可以有语法提示。

2、参数默认值

在参数声明后面用等号来指定参数的默认值。

方法中带默认值的参数必须声明在最后面。

var myname: string = "lxy";

function test(a: string, b: string, c: string="haha") {
console.log(a);
console.log(b);
console.log(c);
} test("xxx", "yyy");

3、可选参数

在方法的参数声明后面用问号来标明此参数为可选参数。

function test(a: string, b?: string, c: string="haha") {
console.log(a);
console.log(b);
console.log(c);
} test("xxx");
//传入第一个参数,第二个参数可选,第三个参数有默认值

Note:

代码里必须处理可选参数没传的情况。

一个必填参数不能在一个可选参数后面。

参考:http://blog.csdn.net/yhhwatl/article/details/51205096

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/6817692.html 有问题欢迎与我讨论,共同进步。

2017-05-06

TypeScript入门(一)的更多相关文章

  1. TypeScript入门指南(JavaScript的超集)

    TypeScript入门指南(JavaScript的超集)   你是否听过 TypeScript? TypeScript 是 JavaScript 的超集,TypeScript结合了类型检查和静态分析 ...

  2. TypeScript入门实例

    前言 TypeScript是JavaScript的超集,微软公司开发,利用es6语法,实现对js的面向对象编程思想,写代码的时候会像强类型语言一样,指定参数类型.返回值类型,类型不对会报错,但编译后还 ...

  3. typescript 入门教程一

    ##### 从今天开始,持续更新typescript入门教程系列.... 目前ts越来越火,主流的前端框架,好比*angular,vue 3*均是采用ts来编写,所有很多公司的项目都是用**ts**来 ...

  4. TypeScript入门一:配置TS工作环境

    配置手动编译TS文件工作环境 配置webpack自动化打包编译工作环境(后面补充) 一.TypeScript入门学习引言 进入主题之前,首先说明这个系列的博客是我刚刚接触TypeScript的学习笔记 ...

  5. TypeScript入门五:TypeScript的接口

    TypeScript接口的基本使用 TypeScript函数类型接口 TypeScript可索引类型接口 TypeScript类类型接口 TypeScript接口与继承 一.TypeScript接口的 ...

  6. TypeScript 入门教程学习笔记

    TypeScript 入门教程学习笔记 1. 数据类型定义 类型 实例 说明 Number let num: number = 1; 基本类型 String let myName: string = ...

  7. TypeScript 入门自学笔记 — 类型断言(二)

    码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14558034.html 目录 码文不易,转载请带上本文链接,感谢~ https://www ...

  8. TypeScript入门文档

    typescript入门文档链接d地址:https://ts.xcatliu.com/basics/type-of-function.html 博主个人站点:www.devloper.top

  9. TypeScript入门

    博客园首发,转载请注明出处,多谢支持.http://www.cnblogs.com/xuema/ 一.TypeScript TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaSc ...

  10. 【转】JavaScript => TypeScript 入门

    几个月前把 ES6 的特性都过了一遍,收获颇丰.现在继续来看看 TypesScript(下文简称为 “TS”).限于经验,本文一些总结如有不当,欢迎指正. 官网有这样一段描述: TypeScript ...

随机推荐

  1. C++中结构体与类的区别(struct与class的区别)

    转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.html C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据 ...

  2. galera断电后无法重建集群

    节点有一个测试环境,数据库用的三节点galera,测试组的同事把电源同时断了.节后回来开机,发现数据库状态一直有问题,以前遇到这种情况,都是把一个节点中的my.conf中的wsrep配置全删掉,作为一 ...

  3. CEPH s3 java sdk PUT对象并在同一个PUT请求中同时设置ACL为 Public

    java: http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/acl-using-java-sdk.html tring bucketName ...

  4. 【前端】Angular2 Ionic2 学习记录

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/angular2_ionic2.html 一.建立项目 ionic start ProductName super ...

  5. mongodb副本集中其中一个节点宕机无法重启的问题

    2-8日我还在家中的时候,被告知mongodb副本集中其中一个从节点因未知原因宕机,然后暂时负责代管的同事无论如何就是启动不起来. 当时mongodb的日志信息是这样的: 实际上这里这么长一串最重要的 ...

  6. python︱函数、for、_name_杂记

    新手入门python,开始写一些简单函数,慢慢来,加油~ 一.函数 def myadd(a=1,b=100): result = 0 i = a while i <= b: # 默认值为1+2+ ...

  7. 1.3 PCI总线的存储器读写总线事务

    总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备.在处理器系统中,这些数据传送都要依赖一定的规则,PCI总线并不例外. PCI总线使用单 ...

  8. Junit4测试报错

    1.字符串数组越界 java.lang.String IndexOutOfBounds Exception:String index out of range:-1 导致: Transaction r ...

  9. zTree实现地市县三级级联报错(二)

    zTree实现地市县三级级联 1.具体报错如下 2014-05-10 23:29:13 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolT ...

  10. 芝麻HTTP:Gerapy的安装

    Gerapy是一个Scrapy分布式管理模块,本节就来介绍一下它的安装方式. 1. 相关链接 GitHub:https://github.com/Gerapy 2. pip安装 这里推荐使用pip安装 ...