📜  TypeScript类型(1)

📅  最后修改于: 2023-12-03 15:20:43.689000             🧑  作者: Mango

TypeScript类型介绍

TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的一个超集,增加了静态类型、类、接口等面向对象编程的特性。TypeScript 在编译时会将类型检查和转换为纯 JavaScript 代码,可以在任何支持 JavaScript 的浏览器、操作系统和平台上运行。

类型定义

TypeScript 通过类型定义来为变量、函数、类等结构提供类型约束,这有助于检测代码的正确性、可读性和可维护性。常见的类型定义包括:

  • 基本类型:number、string、boolean、null、undefined、symbol
  • 数组类型:number[]、string[]、Array<number>、Array<string>
  • 元组类型:[number, string]
  • 枚举类型:enum Color {Red, Green, Blue}
  • 对象类型:{name: string, age: number}
  • 函数类型:(a: number, b: number) => number
类型注解

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 通过类型系统的支持,可以增强代码的可靠性、可读性和可维护性,是一种非常强大的编程语言。