Ngày đăng: 21/06/2023 | No Comments
Ngày cập nhật: 21/06/2023
Bạn đang chuẩn bị cho một cuộc phỏng vấn Typescript và tìm kiếm một số thông tin chi tiết hữu ích? Typescript trở nên vô cùng phổ biến đối với các nhà phát triển nhờ khả năng thêm kiểu gõ tĩnh vào JavaScript, dẫn đến mã mạnh mẽ hơn và dễ bảo trì hơn. Để giúp bạn vượt qua cuộc phỏng vấn Typescript, Glints đã tổng hợp danh sách hơn 20 câu hỏi phỏng vấn Typescript thường gặp nhất cùng với một vài gợi ý trả lời!
Đầu tiên, hãy đến với các câu hỏi phỏng vấn Typescript cơ bản dành cho fresher:
Khi nói đến Typescript, việc hiểu các kiểu nguyên thủy là rất quan trọng. Các kiểu nguyên thủy trong Typescript bao gồm số, chuỗi, boolean, null, không xác định, ký hiệu và bigint. Các loại này đại diện cho các khối xây dựng cơ bản của dữ liệu trong ngôn ngữ.
Trong Typescript, các mảng tương tự như trong JavaScript. Chúng cho phép bạn lưu trữ nhiều giá trị cùng loại. Bạn có thể khai báo một mảng bằng cách chỉ định loại phần tử của nó, theo sau là dấu ngoặc vuông, chẳng hạn như “số[]” cho một mảng số. Mảng có thể được khởi tạo bằng chữ hoặc động thông qua các phương thức khác nhau do Typescript cung cấp.
Unknown type là đối tác an toàn của bất kỳ type nào. Bạn có thể gán bất kỳ thứ gì cho Unknown type, nhưng Unknown type không thể gán cho bất kỳ đối tượng nào ngoại trừ chính nó và bất kỳ đối tượng nào mà không thực hiện xác nhận loại thu hẹp dựa trên luồng điều khiển. Bạn không thể thực hiện bất kỳ thao tác nào trên một biến thuộc Unknown type mà không xác nhận trước hoặc thu hẹp nó thành một type cụ thể hơn.
Hãy xem xét ví dụ sau. Dưới đây là cách tạo biến foo có kiểu không xác định và gán giá trị chuỗi cho nó. Nếu chúng ta cố gắng gán Unknown type đó cho một biến chuỗi bar, trình biên dịch sẽ báo lỗi.
let foo: unknown = “Akshay”;
let bar: string = foo; // Type ‘unknown’ is not assignable to type ‘string’.(2322)
Bạn có thể thu hẹp một biến có Unknown type thành một biến cụ thể bằng cách thực hiện kiểm tra kiểu hoặc kiểm tra so sánh hoặc sử dụng bộ bảo vệ type. Ví dụ: chúng ta có thể thoát khỏi lỗi trên bằng cách:
let foo: unknown = “Akshay”;
let bar: string = foo as string;
Đọc thêm: 15 Câu Hỏi Flutter Thường Gặp Nhất
Các đối tượng (Objects) là các bộ sưu tập khóa và giá trị giống như từ điển. Các Objects phải là duy nhất. Chúng tương tự như mảng và đôi khi còn được gọi là mảng kết hợp. Tuy nhiên, một mảng sử dụng các số để lập chỉ mục các giá trị, trong khi một Object cho phép bạn sử dụng bất kỳ loại nào khác làm khóa.
Trong TypeScript, một loại Object đề cập đến bất kỳ giá trị nào có thuộc tính. Nó có thể được định nghĩa bằng cách đơn giản liệt kê các thuộc tính và kiểu của chúng. Ví dụ:
let pt: { x: number; y: number } = {
x: 10,
y: 20
};
Kiểu void biểu thị sự vắng mặt của type trên một biến. Nó hoạt động như một loại ngược lại với any type. Nó đặc biệt hữu ích trong các hàm không trả về giá trị:
function notify(): void {
alert("The user has been notified.");
}
Nếu một biến thuộc kiểu void, bạn chỉ có thể gán giá trị null hoặc không xác định cho biến đó.
Đọc thêm: Bộ Câu Hỏi Phỏng Vấn Javascript Hữu Ích
Trong lập trình, giá trị null biểu thị sự vắng mặt của giá trị. Một biến null không trỏ đến bất kỳ đối tượng nào khác. Do đó, bạn không thể truy cập bất kỳ thuộc tính nào trên biến hoặc gọi một phương thức trên đó.
Trong TypeScript, giá trị null được biểu thị bằng từ khóa ‘null’. Bạn có thể kiểm tra xem một giá trị có phải là null hay không bằng cách sau:
function greet(name: string | null) {
if (name === null) {
console.log("Name is not provided");
} else {
console.log("Good morning, " + name.toUpperCase());
}
}
var foo = null;
greet(foo); // "Name is not provided"
foo = "Anders";
greet(foo); // "Good morning, ANDERS"
Khi một biến được khai báo mà không khởi tạo, nó được gán giá trị không xác định, tức Undefined. Bản thân nó không hữu ích lắm. Một biến không được xác định nếu nó được khai báo, nhưng không có giá trị nào được gán cho nó. Ngược lại, null được gán cho một biến và nó không đại diện cho giá trị nào.
Đúng như tên gọi, kiểu never đại diện cho loại giá trị không bao giờ xảy ra. Ví dụ: một hàm không bao giờ trả về giá trị hoặc luôn đưa ra một ngoại lệ có thể đánh dấu kiểu trả về của nó là never:
function error(message: string): never {
throw new Error(message);
}
Bạn có thể thắc mắc tại sao chúng ta cần loại ‘never’ khi chúng ta đã có ‘void’. Mặc dù cả hai loại trông giống nhau, nhưng chúng đại diện cho hai khái niệm rất khác nhau.
Void trả về giá trị không xác định trong JavaScript. Do đó, mặc dù bạn đang nói rằng nó không trả về bất cứ thứ gì, nhưng nó đang trả về ‘không xác định’. Chúng ta thường bỏ qua giá trị trả về trong những trường hợp này. Hàm như vậy được suy ra là có kiểu trả về void trong TypeScript:
// This function returns undefined
function greet(name: string) {
console.log(`Hello, ${name}`);
}
let greeting = greet("David");
console.log(greeting); // undefined
Ngược lại, một hàm có kiểu never sẽ không bao giờ trả về. Có 2 trường hợp hàm trả về không bao giờ gõ:
Enums trong Typescript cho phép bạn xác định một tập hợp các hằng số được đặt tên. Chúng cung cấp cách để tạo một tập hợp các giá trị có liên quan với ý nghĩa ngữ nghĩa. Enums rất hữu ích khi bạn có một biến chỉ có thể nhận một trong số các giá trị giới hạn. Theo mặc định, enum ánh xạ các giá trị của chúng thành các hằng số, nhưng bạn cũng có thể tùy chỉnh các giá trị cơ bản.
Toán tử typeof trong Typescript được sử dụng để lấy thông tin loại của một biến, hàm hoặc đối tượng tại thời điểm biên dịch. Nó trả về một chuỗi đại diện của loại. Toán tử typeof có thể được sử dụng với các biến, hàm hoặc thậm chí với các chuỗi ký tự để suy luận hoặc kiểm tra loại biểu thức. Nó thường được sử dụng trong các bộ bảo vệ type và kiểm tra thời gian chạy.
Trong Typescript, bạn có thể sử dụng các biến thể vòng lặp khác nhau như for, while và do-while để thực hiện các thao tác lặp. Các vòng lặp này hoạt động tương tự như các vòng lặp trong các ngôn ngữ lập trình khác và cho phép bạn lặp lại một tập hợp các câu lệnh dựa trên một điều kiện. Việc lựa chọn vòng lặp phụ thuộc vào các yêu cầu cụ thể của chương trình của bạn và logic lặp mà bạn cần thực hiện.
Kiểu symbol trong Typescript đại diện cho các giá trị duy nhất và bất biến có thể được sử dụng làm khóa thuộc tính trong các đối tượng. Các ký hiệu thường được sử dụng để xác định các ký hiệu nổi tiếng, là các ký hiệu được xác định trước được sử dụng bởi các tính năng JavaScript tích hợp. Các symbol cung cấp cách để tạo các thuộc tính riêng tư hoặc ẩn trong các đối tượng và ngăn xung đột tên.
Type inference trong Typescript đề cập đến khả năng của trình biên dịch tự động xác định loại biến dựa trên cách sử dụng và giá trị được gán của nó. Nó loại bỏ nhu cầu chú thích rõ ràng các loại trong nhiều trường hợp, làm cho mã ngắn gọn và dễ đọc hơn. Type inference giúp phát hiện các lỗi liên quan đến kiểu trong quá trình biên dịch.
noImplicitAny trong Typescript cho phép kiểm tra nghiêm ngặt đối với bất kỳ loại ngầm định nào. Khi được bật, trình biên dịch sẽ đưa ra lỗi nếu nó không thể suy ra loại biến và không có chú thích loại nào được cung cấp. Nó khuyến khích các nhà phát triển hiểu rõ ràng về các loại và giúp ngăn chặn việc sử dụng không chủ ý bất kỳ loại nào, dẫn đến mã hiệu quả hơn và dễ bảo trì hơn.
Trong Typescript, bạn có thể kiểm soát khả năng hiển thị của thành viên bằng cách sử dụng các công cụ sửa đổi quyền truy cập như công khai, riêng tư và được bảo vệ. Công cụ sửa đổi công khai cho phép bạn truy cập không hạn chế vào thành viên từ mọi nơi.
Công cụ sửa đổi riêng hạn chế quyền truy cập bên trong lớp chứa, trong khi công cụ sửa đổi được bảo vệ cho phép truy cập bên trong lớp chứa và các lớp con của nó. Bằng cách sử dụng các công cụ sửa đổi này, bạn có thể thực thi đóng gói và xác định phạm vi hiển thị của các thành viên lớp.
Không, Typescript không hỗ trợ trực tiếp các static classes. Tuy nhiên, bạn có thể đạt được mong muốn tương tự bằng cách sử dụng các thuộc tính và phương thức static trong một lớp thông thường.
Typescript khuyến khích sử dụng các static component để cung cấp các hàm tiện ích hoặc hằng số được liên kết với một lớp nhưng không yêu cầu truy cập một thể hiện. Cách tiếp cận này thúc đẩy tính mô đun và khả năng sử dụng lại mã.
Contextual typing trong Typescript là quá trình suy luận loại biểu thức dựa trên ngữ cảnh xung quanh. Nó cho phép bạn dựa vào loại dự kiến của một giá trị để xác định loại thực tế của nó. Contextual typing đặc biệt hữu ích trong các trường hợp mà suy luận kiểu sẽ thất bại hoặc khi làm việc với hệ thống phân cấp kiểu phức tạp.
Kiểu alias là một cách để tạo tên mới cho loại hiện có trong Typescript. Nó cung cấp một cách thuận tiện để xác định các loại phức tạp hoặc dài dòng và làm cho mã dễ đọc hơn.
Bạn có thể tạo kiểu alias bằng cách sử dụng từ khóa kiểu, theo sau là tên mong muốn và định nghĩa kiểu tương ứng. Ví dụ: nhập MyAlias = string | con số; tạo kiểu alias MyAlias đại diện cho một chuỗi hoặc một số.
Trong Typescript, bạn có thể thực hiện kiểm tra null bằng cách sử dụng toán tử kết hợp nullish (??) và toán tử chuỗi tùy chọn (?). Toán tử kết hợp nullish cho phép bạn cung cấp một giá trị mặc định khi một biến là null hoặc không xác định.
Toán tử xâu chuỗi tùy chọn cho phép bạn truy cập các thuộc tính hoặc phương thức lồng nhau một cách an toàn mà không gây ra lỗi thời gian chạy nếu bất kỳ giá trị trung gian nào là null hoặc không xác định.
Typescript cung cấp một số loại tiện ích giúp nâng cao hệ thống loại và cung cấp các tính năng hữu ích. Một số loại tiện ích thường được sử dụng bao gồm Partial<T>, Required<T>, Pick<T, K> và Omit<T, K>.
Các loại này cho phép bạn tạo các kiểu mới dựa trên các kiểu hiện có bằng cách sửa đổi hoặc trích xuất các thuộc tính nhất định. Chúng cung cấp các công cụ mạnh mẽ để làm việc với các cấu trúc dữ liệu phức tạp và đảm bảo an toàn cho kiểu dữ liệu.
Vậy là Glints đã cùng bạn tìm hiểu các câu hỏi phỏng vấn Typescript thường gặp nhất. Hy vọng những gợi ý trên sẽ giúp bạn dễ dàng áp dụng kinh nghiệm và kiến thức của bản thân vào từng câu trả lời.
PREVIOUS
« Học Gì Để Trở Thành Chuyên Gia Thẩm Mỹ?Có thể bạn cũng thích
Lương WinMart Có Cao Không? Khám Phá Cơ Hội Việc Làm
Huy Kieu - 02/08/2024
Lương GS25 Có Cao Không? Khám Phá Cơ Hội Việc Làm
Huy Kieu - 02/08/2024
VNPT Tuyển Dụng Vị Trí Nào? Môi Trường Làm Việc Có Thực Sự Tốt Như Lời Đồn?
Glints Writers - 02/08/2024
Leave a Reply