// 一个简单的 TypeScript 示例
interface User {
name: string;
age: number;
greet(): string;
}
class Developer implements User {
constructor(public name: string, public age: number) {}
greet() {
return `Hello, I'm ${this.name} and I code! 👨💻`;
}
}
const dev = new Developer("Alice", 28);
console.log(dev.greet());
🧩 为什么选择 TypeScript?
特性
JavaScript
TypeScript
类型系统
动态类型
静态类型
编译时错误检查
❌
✅
IDE 智能提示
有限
强大
面向对象特性
基本
完整
适用项目规模
中小型
中大型
🎯 TypeScript 核心特性
1. 🔍 类型系统(静态类型检查)
typescript复制代码
let isDone: boolean = false; // 布尔值
let decimal: number = 6; // 数字
let color: string = "blue"; // 字符串
let list: number[] = [1, 2, 3]; // 数组
// 元组
let tuple: [string, number] = ["hello", 10];
// 枚举
enum Color { Red = 1, Green, Blue }
let c: Color = Color.Green;
2. 🏗️ 接口与类型别名
typescript复制代码
// 接口
interface Point {
x: number;
y: number;
z?: number; // 可选属性
readonly id: string; // 只读属性
}
// 类型别名
type UserID = string | number;
// 实现接口
class MyPoint implements Point {
constructor(public x: number, public y: number, readonly id: string) {}
}
3. 🧬 泛型编程
typescript复制代码
function identity<T>(arg: T): T {
return arg;
}
// 使用
let output = identity<string>("myString");
let output2 = identity(42); // 类型推断
4. 🎭 高级类型
typescript复制代码
// 联合类型
type ID = string | number;
// 交叉类型
type Named = { name: string };
type Aged = { age: number };
type Person = Named & Aged;
// 类型守卫
function isString(test: any): test is string {
return typeof test === "string";
}
// 方式一:尖括号语法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
// 方式二:as 语法
let strLength2: number = (someValue as string).length;