Type Annotation là gì?
TypeScript sử dụng type annotations(chú thích kiểu dữ liệu) để chỉ định rõ ràng các kiểu dữ liệu cho các định danh như variables, function, objects, etc.
TypeScript sử dụng cú pháp : type sau một định danh để làm type annotations, và type có thể là bất kỳ loại dữ liệu hợp lệ nào.
Một định danh được chú thích với một loại dữ liệu, nó chỉ có thể sử dụng loại dữ liệu đó. Nếu định danh sử dụng một loại khác, trình biên dịch sẽ thông báo lỗi.
Type annotations với variables và constants
Bên dưới là cú pháp hiển thị type annotations cho variables và constants:
let variableName: type;
let variableName: type = value;
const constantName: type = value;
Trong cú pháp này, type annotation đứng sau tên biến hoặc hằng số và đứng trước dấu hai chấm ( : )
Ví dụ sử dụng number annotation cho biến:
let counter: number;
Sau đó, bạn có thể gán một số đến biến counter:
counter = 1;
Nếu bạn gán một string đến biến counter, bạn sẽ nhận một thông báo lỗi:
let counter: number;
counter = 'Hello'; // compile error
Error:
Type 'string' is not assignable to type 'number'.
Bạn có thể vừa sử dụng một type annotation cho một biến và vừa khởi tạo một giá trị cho biến đó như sau:
let counter: number = 1;
Các ví dụ khác về primitive type annotations(chú thích kiểu nguyên thủy):
let name: string = 'John';
let age: number = 25;
let active: boolean = true;
Trong ví dụ này, biến name có kiểu string, biến age có kiểu number, và biến active có kiểu boolean.
Các ví dụ về Type annotation
Arrays
Để chú thích loại mảng, chúng tả sử dụng một ngoặc vuông : type[]
let arrayName: type[];
Ví dụ, phần sau khai báo một mảng các chuỗi:
let names: string[] = ['John', 'Jane', 'Peter', 'David', 'Mary'];
Objects
Để chỉ định kiểu cho một đối tượng, bạn sử dụng chú thích kiểu đối tượng. Ví dụ:
let person: {
name: string;
age: number
};
person = {
name: 'John',
age: 25
}; // valid
Trong ví dụ trên, đối tượng person chỉ chấp nhận một đối tượng có 2 thuộc tính name có kiểu string và age có kiểu là number.
Function arguments & return types
Bên dưới là một hàm chú thích với parameter type annotation và trả về type annotation:
let greeting : (name: string) => string;
Trong ví dụ này, bạn có thể gán bất kỳ hàm nào chấp nhận một chuỗi và trả về một chuỗi cho biến greeting :
greeting = function (name: string) {
return `Hi ${name}`;
};
Điều sau đây gây ra lỗi vì hàm được gán cho biến greeting không khớp với loại hàm của nó.
greeting = function () {
console.log('Hello');
};
Error:
Type '() => void' is not assignable to type '(name: string) => string'. Type 'void' is not assignable to type 'string'.
Kiến thức cần nhớ:
Sử dụng type annotations với cú pháp : [type] để chỉ định một loại đặc biệt cho một variable, function, function return value, etc.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chínhType Annotation là gì?Type annotations với variables và constantsCác...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chínhType Annotation là gì?Type annotations với variables và constantsCác ví dụ về Type annotationFunction arguments & return types1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chínhType Annotation là gì?Type annotations với variables và constantsCác ví dụ về Type annotationFunction arguments & return typesV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng...
Directory traversal vulnerabilities (phần 3)
Nội dung chínhType Annotation là gì?Type annotations với variables và constantsCác ví dụ về Type annotationFunction arguments & return typesV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra...
Directory traversal vulnerabilities (phần 2)
Nội dung chínhType Annotation là gì?Type annotations với variables và constantsCác ví dụ về Type annotationFunction arguments & return typesIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác...