Z
ZHANK
基础入门

基础类型注解

掌握 string、number、boolean、array、object 等基础类型

基础类型注解

TypeScript 的核心就是为变量、参数、返回值添加类型标注。

学完本章你将: 掌握 string、number、boolean、array、object 等基础类型。


基本类型

typescript
// 字符串
let name: string = "Alice";
let greeting = `Hello, ${name}`;

// 数字(整数和浮点数都是 number)
let age: number = 25;
let price: number = 99.99;
let hex: number = 0xff;

// 布尔
let isActive: boolean = true;

// null 和 undefined
let u: undefined = undefined;
let n: null = null;

数组类型

typescript
// 两种写法
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3]; // 泛型写法

// 混合类型数组
let mixed: (string | number)[] = [1, "hello", 2];

// 只读数组
let readonly: ReadonlyArray<number> = [1, 2, 3];
// readonly.push(4); // ❌ 不可修改

对象类型

typescript
// 内联对象类型
let user: { name: string; age: number } = {
    name: "Alice",
    age: 25,
};

// 可选属性
let config: { url: string; timeout?: number } = {
    url: "https://api.example.com",
    // timeout 可选
};

// 索引签名 —— 任意键
let dict: { [key: string]: number } = {
    apple: 3,
    banana: 5,
};

类型推断

TypeScript 能自动推断类型,不需要处处标注:

typescript
// 推断为 string
let name = "Alice";

// 推断为 number[]
let scores = [90, 85, 92];

// 推断为 { name: string; age: number }
let person = { name: "Bob", age: 30 };

// 函数返回值也能推断
function add(a: number, b: number) {
    return a + b; // 推断返回 number
}

any 与 unknown

typescript
// any —— 关闭类型检查(尽量避免)
let data: any = 42;
data = "hello";  // 可以
data.foo();      // 不报错,但运行时报错!

// unknown —— 安全的 any
let input: unknown = 42;
// input.toFixed(); // ❌ 必须先用类型守卫
if (typeof input === "number") {
    console.log(input.toFixed(2)); // ✅
}