TS入门学习
TS新特性主要体现在字符串、函数、函数参数、类上,
首先通过官网的一个小例子,安装typescript后可以将ts文件可以编译成js文件。
字符串
多行字符串:使用``包裹跨行的字符串
字符串模板:在多行字符串中通过${xxx}使用来模板
1
2
3
4
5
6
7var name = 'debug'
function getImg() {
return '<i></i>'
}
var html = `<div>${names}
<span>${getImg()}</span>
<div>`拆分字符串
1
2
3
4
5
6
7
8function getData(template, name, age) {
console.log(template);
console.log(name);
console.log(age);
}
var names = 'zyl';
var age = 31;
getData`你好,我的名字是${names},我今年${age}岁了`
参数
参数类型
Typescript中的参数类型包括:boolean/number/string/array/tuple/enum/any/(null和undefined)/ void /never(10种)。其中元祖(tuple)、枚举、任意值、void类型和never是有别于Javascript的特有类型。
元组(tuple)是指一个已知元素数量和类型的数组。
1 |
|
枚举为一组数值赋予友好的名字
1 |
|
任意值any,当我们还不能确定变量的类型时就指定为any,让其通过编译阶段的检查。
或者是只知道一部分变量的类型
1 |
|
void表示没有任何类型,在c中没有返回值的函数就是声明为void的。ts中也是,不管声明一个void类型的变量什么用,只能为其赋值为null或undefined。
1 |
|
never表示永不存在的值,用于总是抛出异常或者不会有返回值的(箭头)函数表达式的返回值类型。变量也可以是never,当被永不为真的条件约束时。
类型声明与默认参数
可以在函数中设置参数的类型和默认
1 |
|
可选参数
在js中,函数的参数时可以选的,而在ts中,每个参数是必选的。但在实际开发中需要根据实际需求来确认参数,可以通过?来定义可选参数。
1 |
|
函数
剩余参数
前面介绍的参数只能表示某一个参数,当需要同时操作多个参数,或者并不知道有多少个参数传入时,就需要用到剩余参数。
1 |
|
generator函数
控制函数的执行过程,可以手动的干预函数执行。
解构表达式
解构是es6新特性,可以对数组或者是对象一一对应快速赋值,
数组解构
1 |
|
对象解构
1 |
|
箭头函数
ts中同样可以使用箭头函数
循环
ts中涉及三种高级循环方式:forEach()、for in、for of
类
ts中可以支持基于类(class)的面向对象编程
- 类的声明
1 |
|
- 类的封装、继承、多态
封装、继承、多态是面向对象的三大特性。在Typescript中,使用extends关键字可以方便的实现继承。
修饰符
在类中的修饰符可以分为公共(public)、私有(private)、和受保护(protected)三种类型。在Typescript里,每个成员默认为public,可以被自由的访问。
接口
Typescript接口的使用方式类似于Java。
在Typescript中接口有属性类型、函数类型、可索引类型、类类型这几种,我们使用interface关键字定义接口并用implements关键字实现接口。