Skip to main content

Quy tắc TypeScript & Naming

Quy tắc TypeScript​

Không sử dụng any​

Không sử dụng kiểu any. Mọi giá trị cần có type cụ thể (primitive, object type, union, generic). Nếu chưa biết chính xác type thì dùng unknown và narrow (type guard) trước khi dùng.

Ví dụ:

// ❌ Tránh
function parse(data: any) {
return data.value;
}

// ✅ Tốt
type ApiResponse = { value: string };
function parse(data: unknown): string {
if (
typeof data === "object" &&
data !== null &&
"value" in data &&
typeof (data as ApiResponse).value === "string"
) {
return (data as ApiResponse).value;
}
throw new Error("Invalid data");
}

Không sử dụng var, chỉ const hoặc let​

Chỉ dùng const và let. Không dùng var (tránh hoisting và scope không rõ ràng).

Ví dụ:

// ❌ Tránh
var count = 0;

// ✅ Tốt
const count = 0;
let total = 0;

Naming Convention​

Đối tượngQuy ướcVí dụ
TypePascalCaseCustomer, OrderItem
Biến / HàmcamelCasecustomerName, getUser
Hằng sốUPPER_CASEMAX_PAGE_SIZE, API_URL

Ví dụ:

const MAX_ITEMS = 100;
const apiBaseUrl = process.env.API_URL;

type Customer = {
id: string;
name: string;
};

function getCustomerById(id: string) {
return customers.find((c) => c.id === id);
}