DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

5 TypeScript config giúp code của bạn chất lượng hơn

Giới thiệu về typescript config

quyentho by quyentho
25 Tháng 4, 2025
in DevOps & Cloud
0
Share on FacebookShare on Twitter

Nếu bạn là một người dùng TypeScript, bất kể với vai trò developer hay DevOps-er chắc hẳn bạn rất yêu thích “ngôn ngữ” này bởi tính chặt chẽ trong cú pháp mà nó bổ sung cho javascript.

Bài viết này giới thiệu đến 5 config rất hữu ích, có thể sẽ giúp chất lượng code của bạn càng tốt hơn.

Về file tsconfig.json:

Typescript thường được gọi là “super set” của javascript, hiểu đơn giản là nó tăng thêm những tính năng hữu dụng cho javascript, nổi bật nhất là strict type check.

Điều này là nhờ vào Typescript compiler trước khi biên dịch cú pháp TypeScript thành Javascript đã áp dụng những “Rules” để kiểm tra tính đúng đắn của cú pháp và kiểu dữ liệu . Trong đó, file tsconfig.json là file cấu hình của trình biên dịch Typescript.

Related Post

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

11 Tháng 6, 2025

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

7 Tháng 6, 2025

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

29 Tháng 4, 2025

Ta chỉ cần chạy lệnh tsc --init là một file  tsconfig.json sẽ được tạo ra một cách tự động. Cần chú ý rằng nơi mà file này đứng sẽ là root directory, nếu bạn làm việc với những config liên quan tới đường dẫn tương đối sẽ phải lưu ý vấn đề này.

 

5 config hữu dụng về code quality trong TypeScript:

1. noUnusedLocals:

Config này sẽ báo lỗi trong trường hợp bạn có local variable (tức biến biên trong một function) đã khai báo mà không được dùng ở đâu cả.

Báo lỗi khi có biến local không dùng đến

Cách bật config:

"compilerOptions": {
    "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
}

 

2. noUnusedParameters:

Báo lỗi khi có tham số không dùng đến

Tương tự với config trên, nhưng config này sẽ báo lỗi khi trong function của bạn có chứa tham số mà không dùng đến.

Cách bật config:

"compilerOptions": {
      "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
}

3. noImplicitAny:

Xem xét ví dụ sau:

function fn(s) {
  console.log(s.substr(3));
}
fn(42);

Ở ví dụ trên, tham số s đang được mong đợi có kiểu dữ liệu string, để có thể áp dụng hàm substr(3) lấy ra chuỗi con bên trong nó.

Tuy nhiên người viết đã không khai báo cụ thể kiểu dữ liệu, dẫn đến tham số được ngầm định là any sau đó được truyền vào một number dẫn đến lỗi ở runtime.

Việc dùng any trong TypeScript làm mất hết toàn bộ giá trị mà TypeScript mang lại. Dùng config sau để TypeScript báo lỗi nếu có biến ngầm định kiểu any:

"compilerOptions": {
   "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
}

4. noImplicitReturns:

Ví dụ về Implicit returns:

Nếu color != blue, function sẽ trả về undefined

Ở đây bạn có thể thấy khi điều kiện if không thỏa, function sẽ không trả về giá trị cụ thể, và được ngầm định là trả về undefined.

Thử tưởng tượng trong hơn mười ngàn dòng code  của bạn bỗng nhiên trả về undefined, bạn sẽ mất rất nhiều thời gian để debug xem logic của bạn đã sai ở chỗ nào.

Trong trường hợp này, cách hay hơn là quăng lỗi, hoặc trả về một giá trị mặc định!

Bật config:

"compilerOptions": {
    "noImplicitReturns": true /* Enable error reporting for codepaths that do not explicitly return in a function. */,
}

5. noImplicitThis:

this trong javascript là một chủ đề dài và khó. Việc xác định xem this mà bạn đang dùng sẽ trỏ đến giá trị nào thường tốn nhiều tế bào não ? và dễ sai sót.

Config này giúp hạn chế lỗi dùng sai this. Thử nhìn xem ví dụ sau:

class Person {
  name: string;
  job: string;

  constructor(name: string, job: string) {
    this.name = name;
    this.job = job;
  }

  getInfo() {
    return function () {
      return `Name: ${this.name}, Job: ${this.job}`;
    };
  }
}

const test = new Person('Quyen', "Dev").getInfo();

console.log(test())

Ở đây, người viết code nghĩ rằng this sẽ trỏ tới instance của object Person, từ đó ta có thể truy cậ vào property name và job.

Nhưng nhìn kỹ lại thì this không trực tiếp nằm trong scope của getInfo(), do đó hàm này sẽ báo lỗi undefined, và mặc định this ở đây sẽ có kiểu dữ liệu any vì TypeScript không thể xác định được nó đang trỏ tới object nào.

Ta có thể bật noImplicitThis để TypeScript cảnh báo khi this ngầm định là any:

Báo lỗi khi this ngầm định là any

Bật config:

"compilerOptions": { 
  "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
}

 

Bonus config:

Khi bạn chạy lệnh tsc, typescript sẽ biên dịch file .ts sang file .js, kể cả khi trong code của bạn vẫn đang báo lỗi. Để bắt typescript chỉ tạo ra file .js khi bạn đã sửa toàn bộ lỗi, ta có thể set noEmitOnError bằng true

"compilerOptions": {
     "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
}

 

Tóm lại:

  • Mọi cấu hình của typesript nằm trong file tsconfig.json
  • Khởi tạo file tsconfig.json bằng lệnh tsc --init
  • Thư mục chứa file tsconfig.json sẽ là thư mục root
  • Biến khai báo mà không dùng được gọi là dead code, có thể dùng những config có sẵn để nhắc nhở loại bỏ các biến này.

Typescript là một compiler mạnh mẽ và có rất nhiều options mà rất ít khi dùng đến. Bài viết này mình đã giới thiệu về 5 config mà mình cho là hữu dụng nhất. Nếu có cơ hội mình sẽ viết thêm bài giới thiệu về config khác trong typescript.

Tags: cicdcode qualityconfigurationdeveloperdevopsjavakiến trúcramscriptingTypeScript
quyentho

quyentho

Related Posts

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
AI & Automation

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

by devopsify
16 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất
DevOps & Cloud

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

by devopsify
11 Tháng 6, 2025
DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên
Bảo mật

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

by devopsify
7 Tháng 6, 2025
Next Post

Snapshot test trong CDK

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Các website demo hay được sử dụng cho thực hành Automation Test

Các website demo hay được sử dụng cho thực hành Automation Test

11 Tháng 6, 2025
Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

1 Tháng 5, 2025
Cài đặt Maven trên Windows

Cài đặt Maven trên Windows

11 Tháng 6, 2025
Cài đặt Grafana – Loki – Promtail monitoring log Container

Cài đặt Grafana – Loki – Promtail monitoring log Container

1 Tháng 5, 2025
Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

16 Tháng 6, 2025
DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

13 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

11 Tháng 6, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
  • MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật
  • DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify