Đúc TypeScript
Đôi khi, khi làm việc với các loại, cần phải ghi đè loại biến, chẳng hạn như khi thư viện cung cấp các loại không chính xác.
Truyền là quá trình ghi đè một loại.
Truyền với as
Một cách đơn giản để truyền một biến là sử dụng từ khóa as
, từ khóa này sẽ trực tiếp thay đổi loại của biến đã cho.
Việc truyền không thực sự thay đổi loại dữ liệu trong biến, ví dụ: đoạn mã sau sẽ không hoạt động như mong đợi vì biến x
vẫn chứa một số.
let x: unknown = 4;
console.log((x as string).length); // prints undefined since numbers don't have a length
TypeScript vẫn sẽ cố gắng kiểm tra các kiểu ép kiểu để ngăn các kiểu ép kiểu có vẻ không chính xác, ví dụ: thao tác sau sẽ gây ra lỗi kiểu vì TypeScript biết việc truyền một chuỗi thành một số sẽ không có ý nghĩa nếu không chuyển đổi dữ liệu:
console.log((4 as string).length); // Error: Conversion of type 'number' to type 'string' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
Phần Truyền lực bên dưới trình bày cách ghi đè điều này. Truyền bằng <>
Việc sử dụng <> hoạt động tương tự như truyền với as
.
Kiểu truyền này sẽ không hoạt động với TSX, chẳng hạn như khi làm việc trên các tệp React.
Được chứng nhận!
$45 ĐĂNG KÝ
Buộc đúc
Để ghi đè các lỗi loại mà TypeScript có thể đưa ra khi truyền, trước tiên hãy chuyển sang unknown
, sau đó chuyển sang loại mục tiêu.
Ví dụ
let x = 'hello';
console.log(((x as unknown) as number).length); // x is not actually a number so this will return undefined
Hãy tự mình thử »