TypeScript dành cho người mới bắt đầu

0 0 0

Người đăng: Vinh Phạm

Theo Viblo Asia

TypeScript đã trở thành một công cụ quan trọng trong phát triển web hiện đại, hỗ trợ mọi thứ từ các dự án nhỏ đến các ứng dụng doanh nghiệp. Trong bài viết này, chúng ta sẽ khám phá những kiến thức nền tảng mà mọi lập trình viên TypeScript khi mới bắt đầu học cho đến lúc thành thạo đều cần phải biết.

Điều kiện tiên quyết

  • Hiểu biết cơ bản về JavaScript
  • Đã cài đặt Node.js trên máy tính của bạn
  • Một trình soạn thảo mã (khuyến nghị dùng VS Code vì hỗ trợ TypeScript rất tốt)

Thiết lập môi trường TypeScript của bạn

Trước tiên, hãy thiết lập một dự án TypeScript từ đầu:

# Install TypeScript globally
npm install -g typescript # Create a new project directory
mkdir ts-basics
cd ts-basics # Initialize a new npm project
npm init -y # Install TypeScript as a dev dependency
npm install typescript --save-dev # Initialize TypeScript configuration
npx tsc --init

Khái niệm cốt lõi

1. Các kiểu dữ liệu cơ bản

Hệ thống kiểu của TypeScript là một trong những tính năng mạnh mẽ nhất của nó. Hãy cùng khám phá các kiểu dữ liệu cơ bản:

// Basic types
let fullName: string = "John Doe";
let age: number = 30;
let isEmployed: boolean = true; // Arrays
let numbers: number[] = [1, 2, 3, 4, 5];
let names: Array<string> = ["Alice", "Bob", "Charlie"]; // Tuple
let person: [string, number] = ["John", 30]; // Enum
enum Color { Red, Green, Blue
}
let favoriteColor: Color = Color.Blue; // Any and Unknown
let notSure: any = 4;
let mysterious: unknown = "hello";

2. Suy luận kiểu (Type Inference)

TypeScript đủ thông minh để suy luận kiểu trong nhiều trường hợp:

// Type inference in action
let message = "Hello"; // TypeScript infers string type
let count = 42; // TypeScript infers number type
let isValid = true; // TypeScript infers boolean type // Array inference
let numbers = [1, 2, 3]; // TypeScript infers number[]

3. Interfaces (Giao diện)

Interfaces xác định các kết cấu trong mã của bạn:

interface User { name: string; age: number; email: string; isAdmin?: boolean; // Optional property
} function createUser(user: User): void { console.log(`Creating user: ${user.name}`);
} // Using the interface
const newUser: User = { name: "Alice", age: 25, email: "alice@example.com"
}; createUser(newUser);

4. Hàm trong TypeScript

Hiểu cách định kiểu cho hàm là rất quan trọng:

// Function with type annotations
function add(x: number, y: number): number { return x + y;
} // Arrow function with types
const multiply = (x: number, y: number): number => x * y; // Optional and default parameters
function greet(name: string, greeting: string = "Hello"): string { return `${greeting}, ${name}!`;
} // Rest parameters
function sum(...numbers: number[]): number { return numbers.reduce((acc, curr) => acc + curr, 0);
}

5. Dự án thực tiễn: Ứng dụng danh sách công việc (Todo List)

Hãy tạo một ứng dụng danh sách công việc đơn giản để thực hành các khái niệm này:

interface Todo { id: number; title: string; completed: boolean; dueDate?: Date;
} class TodoList { private todos: Todo[] = []; addTodo(title: string): void { const todo: Todo = { id: Date.now(), title, completed: false }; this.todos.push(todo); } toggleTodo(id: number): void { const todo = this.todos.find(t => t.id === id); if (todo) { todo.completed = !todo.completed; } } listTodos(): void { this.todos.forEach(todo => { console.log(`[${todo.completed ? 'X' : ' '}] ${todo.title}`); }); }
} // Usage
const myTodos = new TodoList();
myTodos.addTodo("Learn TypeScript basics");
myTodos.addTodo("Practice coding");
myTodos.toggleTodo(1);
myTodos.listTodos();

Những lỗi thường gặp và các phương pháp hay nhất

1. Ép kiểu (Type Assertions)

Chỉ sử dụng khi thực sự cần thiết

let someValue: unknown = "this is a string";
let strLength: number = (someValue as string).length;

2. Kiểm tra giá trị null

Bật chế độ kiểm tra null nghiêm ngặt trong tsconfig.json.

{ "compilerOptions": { "strictNullChecks": true }
}

3. Type vs Interface

Hiểu khi nào nên sử dụng mỗi loại.

// Use interface for object definitions
interface Animal { name: string; makeSound(): void;
} // Use type for unions, intersections, and primitives
type StringOrNumber = string | number;
type Point = { x: number; y: number };

Bước tiếp theo

  • Thực hành chú thích kiểu với các cấu trúc dữ liệu khác nhau
  • Khám phá TypeScript Playground (typescript-play.js.org)
  • Đọc tài liệu chính thức của TypeScript
  • Bắt đầu chuyển đổi một số dự án JavaScript của bạn sang TypeScript

Tài nguyên học tập thêm

  • Tài liệu chính thức của TypeScript
  • TypeScript Playground
  • Kho lưu trữ TypeScript trên GitHub của Microsoft

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 539

- vừa được xem lúc

Type annotation vs Type Inference - Typescript

Trong bài viết này, chúng ta sẽ tìm hiểu kỹ về TypeScript bằng cách tìm hiểu sự khác biệt giữa kiểu chú thích và kiểu suy luận. Tôi sẽ cho rằng bạn có một số kinh nghiệm về JavaScript và biết về các kiểu cơ bản, như chuỗi, số và boolean.

0 0 55

- vừa được xem lúc

Type Annotation và Type Inference trong TypeScript là gì?

Khi làm việc với javascript chắc hẳn các bạn đã quá quen với việc dùng biến mà không cần phải quan tâm đến kiểu dữ liệu của nó là gì phải không? Đúng là mới đầu tiếp cận với Typescript mình cũng cảm thấy nó khá là phiền vì cần phải khai báo đủ type để nó chặt chẽ hơn. Lúc đó mình còn nghĩ: " JavaScr

0 0 42

- vừa được xem lúc

Tìm hiểu TypeScript và kiến thức cơ bản

TypeScript là gì. TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6) như classes, modules.

0 0 58

- vừa được xem lúc

TypeScript - P1: Vì sao TypeScript được yêu thích đến vậy?

Trải nghiệm thực tế. Trước khi là một Web Developer, tôi là một Mobile Developer và Java là thứ mà tôi từng theo đuổi.

0 1 72

- vừa được xem lúc

4 Tính năng rất hay từ TypeScript

Xin chào các bạn hôm nay mình xin chia sẽ những tính năng rất hay của TypeScript (TS), các bạn cùng tìm hiểu nhé. Ngoài việc set Type cho biến, tham số hay function thì ví dụ khi bạn nhìn vào một tham

0 0 98