-
基础类型:
-
Boolean:表示逻辑值 true 或 false。
let isActive: boolean = true;
-
Number:TypeScript 支持十进制、十六进制、二进制和八进制字面量。
let decimal: number = 256; let hex: number = 0xff; let binary: number = 0b1010; let octal: number = 0o744;
-
String:可以使用双引号 (“”) 或单引号 (‘’) 来表示字符串。
let firstName: string = "John"; let sentence: string = `My name is ${firstName}.`;
-
Array:定义数组有两种方式。
let arr1: number[] = [1, 2, 3]; let arr2: Array<number> = [1, 2, 3];
-
Tuple:表示一个已知元素数量和类型的数组,各元素的类型不必相同。
let tuple: [string, number] = ['apple', 2];
-
Enum:为一组数值赋予友好的名字。
enum Color {Red = 1, Green, Blue} let colorName: string = Color[2]; // 输出 "Green"
-
Any:当我们不确定变量的类型时,我们可以使用 any 类型。
let notSure: any = 4; notSure = "maybe a string";
-
Void:与 any 相反,当一个函数没有返回值时,通常会返回 void 类型。
function logMessage(): void { console.log("Logged!"); }
-
Null 和 Undefined:默认情况下,它们是所有其他类型的子类型,这意味着你可以把
null
和undefined
赋值给其他类型如number
。let u: undefined = undefined; let n: null = null;
-
Never:表示的是那些永远不存在的值的类型。
function throwError(errorMsg: string): never { throw new Error(errorMsg); }
-
Object:表示非原始类型,也就是除 number,string,boolean,symbol,null 或 undefined 之外的类型。
function create(o: object): void { console.log(o); }
-
-
高级类型:
-
Union Types:表示一个值可以是几种类型之一。
function displayStringOrNumber(value: number | string) { console.log(value); }
-
Intersection Types:可以合并多个类型到一个类型。
interface A { a: string } interface B { b: string } let value: A & B = { a: 'valueA', b: 'valueB' };
-
Type Aliases:为类型提供一个新的名字。
type StringOrNumber = string | number;
-
Literal Types:与 union types 结合,可以实现类似枚举的功能。
type Direction = "North" | "East" | "South" | "West";
-
Mapped Types:将一个类型的属性映射到另一个类型。
type Readonly<T> = { readonly [P in keyof T]: T[P]; };
-
Conditional Types:根据条件选择类型。
type Check<T> = T extends string ? true : false;
-
-
自定义类型:
-
Interface:定义对象的类型结构。
interface Person { firstName: string; lastName?: string; // 可选属性 } function greet(person: Person) { console.log(`Hello, ${person.firstName}`); }
-
Class:定义对象的实际结构和方法。
class Animal { move(distance: number = 0) { console.log(`Animal moved ${distance}m.`); } }
-
Type Assertion:明确变量的类型。
let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length; // 或 let strLength: number = (someValue as string).length;
-
这仍然是 TypeScript 的浅层概述。为了深入理解和充分利用它,建议进一步研究 TypeScript 的官方文档。