0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Khám Phá TypeScript: Những Khái Niệm Cốt Lõi Mà Mọi Lập Trình Viên Cần Biết

Đăng vào 1 tháng trước

• 4 phút đọc

Chủ đề:

typescript

Khám Phá TypeScript: Những Khái Niệm Cốt Lõi Mà Mọi Lập Trình Viên Cần Biết

TypeScript đã trở thành một công cụ thiết yếu trong phát triển web hiện đại. Là một superset của JavaScript, TypeScript không chỉ bổ sung kiểu tĩnh mà còn cải thiện khả năng đọc mã và hỗ trợ công cụ phát triển, từ đó tăng cường trải nghiệm lập trình viên.

Nếu bạn là một lập trình viên muốn xây dựng các ứng dụng có khả năng mở rộng và dễ bảo trì, nắm vững các khái niệm cốt lõi của TypeScript là rất quan trọng. Bài viết này sẽ hướng dẫn bạn tìm hiểu những kiến thức cơ bản cần thiết để làm chủ TypeScript.

1. TypeScript Là Gì?

TypeScript là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Microsoft. Nó được tạo ra bằng cách mở rộng JavaScript thông qua việc thêm các kiểu tĩnh tuỳ chọn, điều này giúp bạn xác định kiểu cho các biến, tham số của hàm và giá trị trả về, cho phép kiểm tra kiểu tại thời điểm biên dịch.

Những Lợi Ích Chính Của TypeScript:

  • Phát hiện lỗi sớm giúp giảm thiểu rủi ro khi chạy ứng dụng.
  • Tăng cường hỗ trợ từ các IDE với tính năng tự động hoàn thành và tái cấu trúc mã hiệu quả.
  • Dễ dàng cộng tác trong các nhóm lớn nhờ vào cú pháp rõ ràng và tích hợp kiểu dữ liệu.

2. Chú Thích Kiểu và Suy Đoán Kiểu

Chú Thích Kiểu

TypeScript cho phép bạn chỉ định kiểu của một biến hoặc tham số một cách rõ ràng:

typescript Copy
let username: string = "John";
let age: number = 25;

function greet(name: string): string {
  return `Hello, ${name}`;
}

Suy Đoán Kiểu

Trong nhiều tình huống, TypeScript có thể tự động suy ra kiểu dựa trên giá trị gán cho biến:

typescript Copy
let isActive = true; // Suy đoán là boolean

3. Giao Diện và Kiểu

Giao Diện

Giao diện được sử dụng để xác định cấu trúc của một đối tượng:

typescript Copy
interface User {
  id: number;
  name: string;
}

const user: User = { id: 1, name: "Alice" };

Kiểu Bí Danh

Kiểu bí danh cho phép bạn định nghĩa các kiểu phức tạp hơn:

typescript Copy
type UserID = string | number;

Giao diện thích hợp cho đối tượng trong khi kiểu bí danh linh hoạt cho các định nghĩa kiểu.

4. Enums

Enums cho phép bạn xác định các hằng số có tên:

typescript Copy
enum Role {
  Admin,
  User,
  Guest,
}

const userRole: Role = Role.Admin;

5. Generics

Generics cho phép bạn tạo ra các thành phần có thể tái sử dụng thông qua việc chấp nhận các kiểu dưới dạng tham số:

typescript Copy
function identity<T>(value: T): T {
  return value;
}

const num = identity<number>(42);
const str = identity<string>("Hello");

6. Kiểu Union và Intersection

Kiểu Union

Kiểu Union cho phép biến có thể nhận giá trị thuộc nhiều kiểu khác nhau:

typescript Copy
let value: string | number;
value = "Hello";
value = 42;

Kiểu Intersection

Kiểu Intersection kết hợp nhiều kiểu thành một:

typescript Copy
type Person = { name: string };
type Employee = { id: number };

type Staff = Person & Employee;
const staff: Staff = { name: "Bob", id: 123 };

7. Modules và Namespaces

TypeScript hỗ trợ các module ES6 giúp tổ chức mã nguồn:

typescript Copy
// math.ts
export function add(a: number, b: number): number {
  return a + b;
}

// app.ts
import { add } from "./math";
console.log(add(2, 3));

Namespaces, mặc dù không còn phổ biến trong TypeScript hiện đại, vẫn được sử dụng để tổ chức mã nguồn:

typescript Copy
namespace Utils {
  export function log(message: string): void {
    console.log(message);
  }
}

Utils.log("Hello, Namespace!");

8. Kiểu Nâng Cao

Kiểu Được Ánh Xạ (Mapped Types)

Kiểu được ánh xạ tạo ra các kiểu mới bằng cách biến đổi các kiểu hiện có:

typescript Copy
type Readonly<T> = {
  readonly [K in keyof T]: T[K];
};

interface User {
  id: number;
  name: string;
}

const readonlyUser: Readonly<User> = { id: 1, name: "Alice" };

Kiểu Có Điều Kiện (Conditional Types)

Kiểu có điều kiện cung cấp logic kiểu rõ ràng:

typescript Copy
type IsString<T> = T extends string ? true : false;

type Result = IsString<number>; // false

9. Decorators

Decorators là tính năng của TypeScript cho phép bạn thay đổi các lớp, phương thức hoặc thuộc tính, điều này thường gặp trong các framework như Angular:

typescript Copy
function Log(target: any, key: string): void {
  console.log(`${key} was called`);
}

class Person {
  @Log
  sayHello() {
    console.log("Hello!");
  }
}

10. Công Cụ và Cấu Hình

tsconfig.json

Các dự án TypeScript được cấu hình qua tệp tsconfig.json:

json Copy
{
  "compilerOptions": {
    "target": "ES6",
    "module": "commonjs",
    "strict": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

Các Công Cụ Phổ Biến

  • TSC: Trình biên dịch TypeScript.
  • ESLint: Dùng để kiểm tra mã nguồn (linting).
  • Prettier: Công cụ định dạng mã.
  • TypeScript Plugin: Nâng cao khả năng hỗ trợ trong VSCode và các IDE khác.

Kết Luận

TypeScript mở ra cánh cửa cho các nhà phát triển viết những ứng dụng mạnh mẽ, dễ bảo trì và có khả năng mở rộng. Bằng cách nắm vững những khái niệm cốt lõi, bạn có thể khai thác tối đa tiềm năng của TypeScript, từ đó cải thiện đáng kể trải nghiệm phát triển ứng dụng của mình. Dù bạn đang xây dựng các ứng dụng nhỏ hay các hệ thống phức tạp, TypeScript là một phần không thể thiếu trong bộ công cụ của bạn.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào