5分钟概览TypeScript
5分钟快速上手,请猛击这里看官网文档。
1. 简介
TypeScript不是一种新的语言,可以认为是给JavaScript添加语言特性的语言扩展(例如在JavaScript还未出现import和装饰器的时候,TypeScript已经有了),官方的说法是JavaScript的超集,最终还是会编译成JavaScript代码在浏览器执行。
2. 语法特性
TypeScript是支持OOP开发的,对于有OOP经验的人来说是非常友好的,写过c#、Java、golang语言的开发者,很容易上手。
学习的时候,建议通读文档,中文文档非常全面,更新的也特别及时,建议多做参考,文档地址:点此!
3. 基础语法
3.1. 声明语法:
1
2
3
4
5
6
|
class Name{
// 声明成员
}
interface IName{
// 声明成员
}
|
1
2
|
let num: number = 1; // 显示赋值
let str: string; // 默认初始值
|
1
2
3
|
function func(val: string):void{
// 该函数需要一个string类型的参数,无返回值。
}
|
3.2. 基础类型:
TypeScript中的类型和JavaScript中某些是一致的,有:
1
2
3
4
5
|
enum Color{
Red = 1,
Blue,
Black
}
|
- any:表示任意类型,不会在编译阶段对Any类型的变量进行类型检查,相当于c#中的
dynamic
。
1
2
3
|
let notType: any = 123;
notType = "123";
notType = false;
|
- void:这和any类型相反,表示没有任何类型,通常用在函数没有返回值的情况下,因为声明一个void类型没有什么用,void类型只能赋值undefined和null。
1
|
let nothing: void = undefined;
|
3.3. 属性和函数
- 属性和函数都可以用public、protected和private修饰,默认的类、接口以及属性和函数都是public的,想要私有成员,需要显示的声明private;protected表示可以在当前类和它的子类中访问的成员。
- 属性可以声明只读属性:
private readonly _num: number = 123;
- 属性和函数都可以声明成静态属性/函数;包含静态成员的类,不需要new就可以调用其静态成员。静态成员中this关键字不指向声明它的类。
- 属性具有存取器
getter
和setter
,可以是实现对属性的访问控制:
1
2
3
4
5
6
7
8
9
|
class Person{
private _name: string;
public get name():string{
return this._name;
}
public set name(val: string){
this._name = val;
}
}
|
- 函数的参数中可以使用可选参数,表示调用该方法时,可以不传入该参数:
1
2
3
4
5
6
7
8
9
10
11
12
|
class Person{
function getName(age: number, gender?: string){
}
function getName1(age: number,gender: string){
}
}
let p :Person = new Person();
p.getName(23); // 正确
p.getName1(23,"girl"); // 正确
p.getName1(23) // 错误
|
1
2
3
4
5
6
7
8
9
|
class Person{
function getName(age: number, gender = "girl"){
return age + "***" + gender;
}
}
let p :Person = new Person();
p.getName(23); // 23***girl
p.getName(23, undefined); // 23***girl
p.getName(23, "boy"); // 23***boy
|
TypeScript的特性还有很多,但是了解上面的简单特性基本上就能书写TypeScript代码了(可能对于没有接触过后端的开发者还是有点绕),还是一句话,通读官方文档,那是非常好的入门和提升的资料。