











专门描述对象结构、类、函数、数组,支持合并声明,面向对象风格。
interface User {
id: number
name: string
}
给任意类型起别名(对象、联合、交叉、基础类型、元组),不能重复声明合并。
type User = {
id: number
name: string
}
// interface 重复声明会合并
interface User { name: string }
interface User { age: number }
const u: User = { name: "张三", age: 18 }; // 合法
// type 重复定义直接报错,不允许
type User = { name: string }
type User = { age: number } // 报错:标识符重复
extends 继承interface User { name: string }
interface Admin extends User { role: string }
&type User = { name: string }
type Admin = User & { role: string }
type 可以定义:基础类型、联合、交叉、元组、函数、任意组合
// 基础类型别名
type Str = string;
// 联合类型(interface 做不到)
type Status = "success" | "fail" | "loading";
// 元组
type Point = [number, number];
// 函数
type Fn = (a: number) => string;
interface 只能描述对象 / 类结构,不能定义联合、基础类型。
interface IUser { name: string }
type TUser = { name: string }
class A implements IUser { name = "a" }
class B implements TUser { name = "b" }
interface Fn {
(x: number): void
}
type Fn = (x: number) => void
interface User {
readonly id: number;
nick?: string;
}
type User = {
readonly id: number;
nick?: string;
}
interface I<T> { data: T }
type T<T> = { data: T }
? 可选、readonly 只读修饰符
implements 实现
| / &)
interface Account {
id: number
username: string
}
interface AdminAccount extends Account {
permission: string[]
}
type PageState = "idle" | "loading" | "done" | "error";
type Handler = (val: string) => Promise<void>;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。