1. TypeScript简介
TypeScript是JavaScript的一个超集,添加了静态类型、类、接口等特性。它最终会编译成纯JavaScript代码,因此可以在任何支持JavaScript的环境中运行。TypeScript的主要目标是提供更好的开发体验,包括代码补全、类型检查、重构等。
2. 安装TypeScript
npm install -g typescript
3. 基本类型
- 布尔值
let isDone: boolean = false;
- 数字
let decimal: number = 6; // 十进制
let hex: number = 0xf00d; // 十六进制
let binary: number = 0b1010; // 二进制
let octal: number = 0o744; // 八进制
- 字符串
let color: string = "blue";
color = 'red';
- 数组
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];
- 元组
let x: [string, number] = ["jiang", 10];
- 枚举
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
- 任意类型
当你不确定一个变量具体是什么类型时,可以使用any类型:
let notSure: any = 4;
notSure = "我是字符串";// 字符串
notSure = false; // 布尔值
- 空值
let u: undefined = undefined;
let n: null = null;
- void类型
通常用于表示没有返回值的函数:
function sayHello(): void {
console.log("hello, jiang");
}
- Never类型
如果一个函数永远不会返回(例如,它可能抛出异常或进入一个无限循环),那么可以将其返回类型标注为 never
function error(message: string): never {
throw new Error(message);
}
4. 接口
接口定义了一个对象的结构,可以用来定义类型。
interface Person {
name: string;
age: number;
}
let tom: Person = {
name: "Jiang",
age: 24
};
5. 类
TypeScript支持面向对象的编程模式,包括类、继承等特性。
class Animal {
name: string;
constructor(theName: string) { this.name = theName; }
move(distanceInMeters: number = 0) {
console.log(`${this.name} 走了 ${distanceInMeters}米.`);
}
}
class Dog extends Animal {
bark() {
console.log('汪!');
}
}
let dog = new Dog("dogA");
dogA.bark();
dogA.move(10);
dogA.name = "dogB";
6. 函数
TypeScript中的函数与JavaScript中的非常相似,区别是你可以给参数和返回值指定类型
function greeter(person: string): string {
return "Hello, " + person;
}
7. 编译TypeScript
你可以使用tsc命令来编译TypeScript文件。例如,如果你有一个名为app.ts的TypeScript文件,你可以这样编译它:
tsc app.ts
这会生成一个名为app.js的JavaScript文件。然后用node app.js运行即可
最后
下次见🎈