TypeScript 新手指南:从零开始构建你的第一个应用
2023-11-06 00:13:50
前言
JavaScript 是一种强大的语言,它为我们提供了许多构建 Web 应用的工具。然而,JavaScript 也是一种弱类型的语言,这意味着它不会对变量和数据类型进行检查。这使得 JavaScript 代码很容易出错,而且难以维护。
TypeScript 是 JavaScript 的超集,它扩展了 JavaScript 的语法,增加了类型系统、接口、类、模块等特性,使 JavaScript 代码更加健壮和可维护。TypeScript 代码可以在任何支持 JavaScript 的环境中运行,包括浏览器、服务器和移动设备。
TypeScript 基础
1. TypeScript 变量
TypeScript 中的变量与 JavaScript 中的变量类似,但是它们必须声明类型。变量类型的声明方式如下:
let name: string = "John Doe";
上面的代码声明了一个名为 name
的变量,它的类型是 string
。这意味着 name
变量只能存储字符串值。
2. TypeScript 数据类型
TypeScript 中的数据类型与 JavaScript 中的数据类型类似,包括:
string
:字符串类型,表示由字符组成的序列。number
:数字类型,表示整数或浮点数。boolean
:布尔类型,表示真或假。null
:空值类型,表示没有值。undefined
:未定义类型,表示变量尚未赋值。
3. TypeScript 运算符
TypeScript 中的运算符与 JavaScript 中的运算符类似,包括:
+
:加法运算符,用于将两个数字相加。-
:减法运算符,用于将两个数字相减。*
:乘法运算符,用于将两个数字相乘。/
:除法运算符,用于将两个数字相除。%
:求余运算符,用于计算两个数字相除的余数。
4. TypeScript 函数
TypeScript 中的函数与 JavaScript 中的函数类似,但是它们必须声明返回类型。函数的声明方式如下:
function greet(name: string): string {
return "Hello, " + name + "!";
}
上面的代码声明了一个名为 greet
的函数,它接受一个字符串类型的参数 name
,并返回一个字符串类型的返回值。
5. TypeScript 对象
TypeScript 中的对象与 JavaScript 中的对象类似,但是它们可以使用接口来定义对象的结构。接口的声明方式如下:
interface Person {
name: string;
age: number;
}
上面的代码声明了一个名为 Person
的接口,它定义了一个 name
属性和一个 age
属性。
6. TypeScript 数组
TypeScript 中的数组与 JavaScript 中的数组类似,但是它们必须声明元素的类型。数组的声明方式如下:
let numbers: number[] = [1, 2, 3, 4, 5];
上面的代码声明了一个名为 numbers
的数组,它包含了五个数字元素。
7. TypeScript 类
TypeScript 中的类与 JavaScript 中的类类似,但是它们可以使用访问修饰符来控制类的成员的访问权限。类的声明方式如下:
class Person {
private name: string;
public age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
console.log("Hello, my name is " + this.name + "!");
}
}
上面的代码声明了一个名为 Person
的类,它包含了两个属性 name
和 age
,以及一个构造函数和一个 greet
方法。
8. TypeScript 模块
TypeScript 中的模块可以将代码组织成更小的单元,以便于管理和重用。模块的声明方式如下:
module MyModule {
export function greet(name: string): string {
return "Hello, " + name + "!";
}
}
上面的代码声明了一个名为 MyModule
的模块,它包含了一个 greet
函数。
9. TypeScript 接口
TypeScript 中的接口可以定义对象的结构,以便于对对象进行类型检查。接口的声明方式如下:
interface Person {
name: string;
age: number;
}
上面的代码声明了一个名为 Person
的接口,它定义了一个 name
属性和一个 age
属性。
10. TypeScript 装饰器
TypeScript 中的装饰器可以