TypeScript 是一种静态类型的编程语言,是 JavaScript 的超集,它解决了 JavaScript 弱类型的问题,并使得代码更具可读性和可维护性。下面是 TypeScript 的学习笔记:
1. 基本类型
在 TypeScript 中,基本类型包括 number
、string
、boolean
、 null
、 undefined
和 symbol
。另外还有 any
类型,它可以存储任何类型的值。
let num: number = 1;
let str: string = "hello";
let bool: boolean = true;
let nul: null = null;
let undef: undefined = undefined;
let sym: symbol = Symbol("foo");
let anyType: any = "foo";
2. 类型注解
可以在变量名后面加上冒号和类型,来为变量添加注释。这被称为类型注解。
let num: number = 1;
let str: string = "hello";
let bool: boolean = true;
3. 函数
在 TypeScript 中,函数可以有参数和返回值的类型注解。
function add(x: number, y: number): number {
return x + y;
}
4. 接口
在 TypeScript 中,可以使用接口来定义对象的形状。
interface Person {
name: string;
age: number;
gender: string;
}
let person: Person = {
name: "Jack",
age: 18,
gender: "male",
};
5. 类
在 TypeScript 中,可以使用类来实现面向对象编程。
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
sayName() {
console.log(`My name is ${this.name}`);
}
}
let cat = new Animal("Kitty");
cat.sayName(); // 输出 "My name is Kitty"
6. 泛型
在 TypeScript 中,可以使用泛型来实现可重用的代码。泛型允许我们在定义函数、接口或类时,不预先指定具体类型,而是在使用时再指定。
function identity<T>(arg: T): T {
return arg;
}
7. 类型别名
在 TypeScript 中,可以使用类型别名来为某个类型起一个新的名字。
type Age = number;
type Person = {
name: string;
age: Age;
gender: string;
};
8. 枚举
在 TypeScript 中,可以使用枚举来定义一组命名的常量。
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
9. 非空断言操作符
在 TypeScript 中,可以使用非空断言操作符(!
)来告诉编译器某个值一定不为 null 或 undefined。
let name: string | undefined;
let len: number = name!.length; // 非空断言
10. 可选属性和参数
在 TypeScript 中,可以使用 ?
来将属性或参数设为可选的。
type Person = {
name: string;
age?: number; // 可选属性
};
function printName(person: Person) {
console.log(person.name);
}
printName({ name: "Jack" }); // 输出 "Jack"
11. readonly 属性
在 TypeScript 中,可以使用 readonly
来将属性设为只读的。
type Person = {
readonly name: string;
};
let person: Person = { name: "Jack" };
person.name = "Tom"; // 报错,name 属性为只读
这些是 TypeScript 的一些基础内容,学习这些内容可以让你入门 TypeScript 编程。