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

Khám phá TypeScript: Những khái niệm cốt lõi cho mọi lập trình viên

0 0 2

Người đăng: Vũ Tuấn

Theo Viblo Asia

TypeScript đã trở thành một công cụ không thể thiếu trong phát triển web hiện đại. Là một superset của JavaScript, nó bổ sung kiểu tĩnh, cải thiện công cụ dành cho nhà phát triển và tăng cường khả năng đọc mã cho hệ sinh thái JavaScript.

Nếu bạn là một lập trình viên đang muốn xây dựng các ứng dụng có khả năng mở rộng và dễ bảo trì, việc hiểu các khái niệm cốt lõi của TypeScript là điều cần thiết. Bài viết này sẽ hướng dẫn bạn tìm hiểu những nguyên tắc cơ bản hình thành nên xương sống của 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 xây dựng dựa trên JavaScript bằng cách thêm các kiểu tĩnh tùy chọn. Điều này có nghĩa là bạn có thể xác định kiểu của các biến, tham số 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:

  • Phát hiện lỗi sớm.
  • Hỗ trợ IDE nâng cao với tính năng tự động hoàn thành và tái cấu trúc.
  • Dễ dàng cộng tác trong các nhóm lớn.

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 rõ ràng kiểu của một biến hoặc tham số hàm:

let username: string = "John";
let age: number = 25; function greet(name: string): string { return `Hello, ${name}`;
}

Suy đoán Kiểu

Trong nhiều trường hợp, TypeScript có thể tự động suy ra kiểu dựa trên giá trị được gán:

let isActive = true; // Inferred as boolean

3. Giao diện và Kiểu

Giao diện

Giao diện được sử dụng để xác định hình dạng của một đối tượng:

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

Kiểu Bí danh

Kiểu bí danh tương tự như giao diện nhưng có thể đại diện cho các kiểu phức tạp hơn:

type UserID = string | number;

Sử dụng giao diện để xác định đối tượng và kiểu bí danh cho các định nghĩa kiểu linh hoạt hơn.

4. Enums

Enums cho phép bạn xác định một tập hợp các hằng số được đặt tên:

enum Role { Admin, User, Guest,
} const userRole: Role = Role.Admin;

5. Generics

Generics cho phép tạo các thành phần có thể tái sử dụng bằng cách cho phép các kiểu được truyền dưới dạng tham số:

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 các biến chứa các giá trị thuộc các kiểu khác nhau:

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:

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 modules ES6 để tổ chức mã:

// 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 (không được khuyến khích sử dụng trong TypeScript hiện đại) được sử dụng để tổ chức mã trước khi có modules ES6:

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ạ cho phép bạn tạo các kiểu mới bằng cách biến đổi các kiểu hiện có:

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:

type IsString<T> = T extends string ? true : false; type Result = IsString<number>; // false

9. Decorators

Decorators là một tính năng của TypeScript được sử dụng để sửa đổi các lớp, phương thức hoặc thuộc tính. Chúng thường được thấy trong các framework như Angular:

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 bằng cách sử dụng tệp tsconfig.json:

{ "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 cú pháp (linting) mã TypeScript.
  • Prettier: Dùng để định dạng mã.
  • TypeScript Plugin: Nâng cao hỗ trợ trình soạn thảo trong VSCode và các IDE khác.

Kết luận

TypeScript cho phép các nhà phát triển viết các ứng dụng mạnh mẽ, dễ bảo trì và có khả năng mở rộng. Bằng cách hiểu các khái niệm cốt lõi của nó, bạn có thể khai thác toàn bộ tiềm năng của nó và cải thiện đáng kể trải nghiệm phát triển của mình. Cho dù bạn đang xây dựng các tập lệnh nhỏ hay các ứng dụng cấp doanh nghiệp, TypeScript là một bổ sung giá trị cho bộ công cụ của bạn.

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