📅  最后修改于: 2023-12-03 15:20:43.689000             🧑  作者: Mango
TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的一个超集,增加了静态类型、类、接口等面向对象编程的特性。TypeScript 在编译时会将类型检查和转换为纯 JavaScript 代码,可以在任何支持 JavaScript 的浏览器、操作系统和平台上运行。
TypeScript 通过类型定义来为变量、函数、类等结构提供类型约束,这有助于检测代码的正确性、可读性和可维护性。常见的类型定义包括:
TypeScript 还提供了类型注解的语法,可以在变量、函数、类的声明中显式地标明类型,以便类型检查器检测类型错误。例如:
let count: number = 10;
function add(a: number, b: number): number {
return a + b;
}
class Person {
name: string;
age: number;
}
TypeScript 的类型检查器能够根据注解进行类型推断,也可以根据表达式的类型推断出变量的类型。例如:
let name = '张三'; // 推断为 string 类型
let age: number;
age = 18; // 显式声明类型
TypeScript 的类型系统兼容 JavaScript,可以自动进行类型的转换和兼容。例如:
let num: number = 10;
let str: string = '20';
num = str; // 自动转换为 number 类型
TypeScript 可以进行类型断言,允许程序员显式地将一个值强制转换为某个类型。例如:
let str: any = '123';
let num: number = <number>str; // 断言为 number 类型
TypeScript 支持面向对象编程,提供了类和接口的概念。类通过构造函数和方法来定义对象的行为和状态,接口则通过属性和方法来定义对象的结构和行为。例如:
interface Person {
name: string;
age: number;
sayHi(): void;
}
class Student implements Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
sayHi() {
console.log(`我叫${this.name},今年${this.age}岁。`);
}
}
let stu = new Student('张三', 18);
stu.sayHi(); // 我叫张三,今年18岁。
TypeScript 支持泛型编程,可以编写可重用、类型安全的代码。泛型通过参数化类型来实现,可以应用于函数、类等结构中。例如:
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>('hello');
console.log(output); // hello
泛型还可以用于约束类型的结构和行为,例如:
interface Lengthwise {
length: number;
}
function logLength<T extends Lengthwise>(arg: T): void {
console.log(`长度为${arg.length}。`);
}
logLength('hello'); // 长度为5。
logLength([1, 2, 3]); // 长度为3。
logLength({length: 4}); // 长度为4。
以上就是 TypeScript 类型的介绍,我们可以发现 TypeScript 通过类型系统的支持,可以增强代码的可靠性、可读性和可维护性,是一种非常强大的编程语言。