Hướng dẫn how typescript disinfect html? - cách loại bỏ tập lệnh html?
Trang tổng quan này chứa một phiên bản rút ngắn của tất cả các ghi chú phát hành cho TypeScript. Bởi vì trang này rất lớn. Các mẫu mã có các yếu tố tương tác của chúng bị vô hiệu hóa. Show
TypeScript 4.2Bảo quản bí danh loại thông minh hơnTypeScript có một cách để khai báo tên mới cho các loại gọi là bí danh loại. Nếu bạn viết một tập hợp các chức năng mà tất cả hoạt động trên 18, bạn có thể viết một bí danh để tránh lặp đi lặp lại nhiều lần.
Trong TypeScript 4.2, nội bộ của chúng tôi thông minh hơn một chút. Chúng tôi theo dõi cách các loại được xây dựng bằng cách giữ xung quanh các phần của cách chúng được viết và xây dựng ban đầu theo thời gian. Chúng tôi cũng theo dõi và phân biệt các bí danh loại vào các trường hợp của các bí danh khác! Có thể in lại các loại dựa trên cách bạn đã sử dụng chúng trong mã của mình có nghĩa là với tư cách là người dùng TypeScript, bạn có thể tránh được một số loại không may được hiển thị và điều đó thường chuyển sang nhận ra đầu ra tệp 19 tốt hơn, thông báo lỗi và thông báo lỗi và trong- Loại trình soạn thảo hiển thị trong thông tin nhanh và trợ giúp chữ ký. Điều này có thể giúp TypeScript cảm thấy dễ tiếp cận hơn một chút cho người mới đến. Để biết thêm thông tin, hãy xem yêu cầu kéo đầu tiên cải thiện các trường hợp khác nhau xung quanh việc bảo tồn bí danh loại liên minh, cùng với yêu cầu kéo thứ hai bảo tồn bí danh gián tiếp. Các yếu tố nghỉ ngơi hàng đầu/giữa trong các loại tupleTrong TypeScript, các loại tuple có nghĩa là để mô hình các mảng với độ dài và loại phần tử cụ thể.
Trong TypeScript 4.2, các phần tử REST được mở rộng cụ thể trong cách chúng có thể được sử dụng. Trong các phiên bản trước, TypeScript chỉ cho phép các phần tử 20 ở vị trí cuối cùng của loại tuple. Tuy nhiên, bây giờ các yếu tố REST có thể xảy ra ở bất cứ đâu trong một tuple - chỉ với một vài hạn chế.
Mặc dù JavaScript không có bất kỳ cú pháp nào để mô hình các tham số REST hàng đầu, chúng tôi vẫn có thể khai báo 21 là một hàm lấy các đối số hàng đầu bằng cách khai báo tham số REST 22 với loại Tuple sử dụng phần tử REST hàng đầu. Điều này có thể giúp mô hình rất nhiều JavaScript hiện có ngoài kia! Để biết thêm chi tiết, xem yêu cầu kéo ban đầu. Kiểm tra chặt chẽ hơn cho nhà điều hành tsinterface SomeType { /** This is an index signature. */ [propName: string]: any;}function doStuff(value: SomeType) { let x = value["someProperty"];}23Trong JavaScript, đó là một lỗi thời gian chạy để sử dụng loại không phải đối tượng ở bên phải của toán tử 23. TypeScript 4.2 đảm bảo điều này có thể được bắt tại thời điểm thiết kế.
Kiểm tra này khá bảo thủ đối với hầu hết các phần, vì vậy nếu bạn đã nhận được một lỗi về điều này, thì đó có thể là một vấn đề trong mã. Một lời cảm ơn lớn đến người đóng góp bên ngoài của chúng tôi Jonas Hzigter vì yêu cầu kéo của họ! tsinterface SomeType { /** This is an index signature. */ [propName: string]: any;}function doStuff(value: SomeType) { let x = value["someProperty"];}25Quay lại khi TypeScript lần đầu tiên giới thiệu chữ ký chỉ mục, bạn chỉ có thể nhận được các thuộc tính được khai báo bởi chúng với cú pháp truy cập phần tử của phần tử có giá đỡ như 26.
Điều này cuối cùng trở nên cồng kềnh trong các tình huống mà chúng ta cần làm việc với các đối tượng có tính chất tùy ý. Ví dụ, hãy tưởng tượng một API trong đó nó phổ biến để viết sai một tên thuộc tính bằng cách thêm một ký tự 27 ở cuối.
Để làm cho các loại tình huống này dễ dàng hơn, một thời gian trở lại, TypeScript có thể sử dụng cú pháp truy cập thuộc tính của Toted dotted, như 28 Khi một loại có chữ ký chỉ mục chuỗi. Điều này cũng giúp chuyển đổi mã JavaScript hiện tại sang TypeScript dễ dàng hơn. Trong một số trường hợp, người dùng muốn chọn lọc một cách rõ ràng vào chữ ký chỉ mục - họ muốn nhận được thông báo lỗi khi truy cập thuộc tính chấm chấm không tương ứng với một khai báo thuộc tính cụ thể. Đó là lý do tại sao TypeScript giới thiệu một lá cờ mới gọi là 29. Trong chế độ này, bạn sẽ được chọn tham gia vào hành vi cũ của TypeScript, có lỗi. Cài đặt mới này không thuộc họ cờ 30, vì chúng tôi tin rằng người dùng sẽ thấy nó hữu ích hơn trên một số bản mã nhất định so với các cơ sở mã khác. Bạn có thể hiểu tính năng này chi tiết hơn bằng cách đọc theo yêu cầu kéo tương ứng. Chúng tôi cũng muốn gửi lời cảm ơn lớn đến Wenlu Wang, người đã gửi cho chúng tôi yêu cầu kéo này! tsinterface SomeType { /** This is an index signature. */ [propName: string]: any;}function doStuff(value: SomeType) { let x = value["someProperty"];}31 Xây dựng chữ kýTypeScript cho phép chúng tôi đánh dấu một lớp là trừu tượng. Điều này nói với TypeScript rằng lớp chỉ có nghĩa là được mở rộng từ đó và một số thành viên nhất định cần được điền bởi bất kỳ lớp con nào để thực sự tạo ra một thể hiện. TypeScript 4.2 cho phép bạn chỉ định công cụ sửa đổi 31 trên chữ ký của hàm tạo.
Thêm công cụ sửa đổi 31 vào các tín hiệu chữ ký xây dựng mà bạn có thể truyền trong các hàm tạo 31. Nó không ngăn cản bạn vượt qua các chức năng khác của các lớp/nhà xây dựng, đó là bê tông, - nó thực sự chỉ báo hiệu rằng không có ý định chạy trực tiếp cho hàm tạo, do đó, nó an toàn để vượt qua trong một loại lớp. Tính năng này cho phép chúng tôi viết các nhà máy mixin theo cách hỗ trợ các lớp trừu tượng. Ví dụ: trong đoạn mã sau, chúng tôi có thể sử dụng hàm mixin 35 với lớp 31 37.
Lưu ý rằng 35 đang chứng minh một quy tắc cụ thể, trong đó một lớp (như 39) mở rộng một giá trị mà chung chung và giới hạn bởi một hàm tạo trừu tượng (như 40) cũng phải được khai báo 31. Điều này là do không có cách nào để biết liệu một lớp có thành viên trừu tượng hơn được thông qua, và vì vậy, không thể biết liệu lớp con có thực hiện tất cả các thành viên trừu tượng hay không. Bạn có thể đọc thêm về chữ ký xây dựng trừu tượng theo yêu cầu kéo của nó. Hiểu cấu trúc dự án của bạn với tsinterface SomeType { /** This is an index signature. */ [propName: string]: any;}function doStuff(value: SomeType) { let x = value["someProperty"];}42Một kịch bản phổ biến đáng ngạc nhiên cho người dùng TypeScript là hỏi tại sao TypeScript bao gồm cả tệp này? Suy ra các tệp trong chương trình của bạn hóa ra là một quá trình phức tạp và do đó có rất nhiều lý do tại sao một sự kết hợp cụ thể của 43 đã được sử dụng, tại sao một số tệp trong 44 được đưa vào và tại sao một số tệp được đưa vào mặc dù chúng tôi nghĩ Chỉ định 45 sẽ giữ chúng ra. Đó là lý do tại sao TypeScript bây giờ cung cấp cờ 46.
Khi sử dụng tùy chọn này, trình biên dịch TypeScript sẽ cung cấp một số đầu ra rất dài dòng về lý do tại sao một tệp kết thúc trong chương trình của bạn. Để đọc nó dễ dàng hơn, bạn có thể chuyển tiếp đầu ra đến một tệp hoặc gửi nó vào một chương trình có thể dễ dàng xem nó.
Thông thường, đầu ra sẽ bắt đầu bằng cách liệt kê các lý do bao gồm các tệp 43, sau đó cho các tệp cục bộ, sau đó các tệp 44. 0 Ngay bây giờ, chúng tôi không đảm bảo về định dạng đầu ra - nó có thể thay đổi theo thời gian. Trên lưu ý đó, chúng tôi quan tâm đến việc cải thiện định dạng này nếu bạn có bất kỳ đề xuất nào! Để biết thêm thông tin, hãy xem yêu cầu kéo ban đầu! Cải thiện chức năng chưa được kiểm tra trong các biểu thức logicNhờ những cải tiến hơn nữa từ Alex Tarasyuk, các kiểm tra chức năng chưa được xác định của TypeScript hiện đang được áp dụng trong các biểu thức 49 và 50. Theo 51, mã sau đây sẽ lỗi. 1 Để biết thêm chi tiết, hãy xem yêu cầu kéo ở đây. Các biến bị phá hủy có thể được đánh dấu rõ ràng là không được sử dụngNhờ một yêu cầu kéo khác từ Alex Tarasyuk, giờ đây bạn có thể đánh dấu các biến bị phá hủy là không sử dụng bằng tiền tố chúng bằng một dấu gạch dưới (ký tự 52). 2 Trước đây, nếu 53 không bao giờ được sử dụng sau này, TypeScript sẽ đưa ra lỗi theo 54. Bây giờ, TypeScript sẽ nhận ra rằng 53 đã được đặt tên một cách có chủ ý với một dấu gạch dưới vì không có ý định sử dụng nó. Để biết thêm chi tiết, hãy xem sự thay đổi đầy đủ. Các quy tắc thư giãn giữa các thuộc tính tùy chọn và chữ ký chỉ số chuỗiChữ ký chỉ mục chuỗi là một cách gõ các đối tượng giống như từ điển, nơi bạn muốn cho phép truy cập với các khóa tùy ý: 3 Tất nhiên, đối với bất kỳ tiêu đề phim nào chưa có trong từ điển, 56 sẽ là 57 (TypeScript 4.1 đã thêm tùy chọn 58 để bao gồm 57 khi đọc từ chữ ký chỉ mục như thế này). Mặc dù nó rõ ràng rằng phải có một số chuỗi không có trong 60, các phiên bản trước của các thuộc tính đối tượng tùy chọn được xử lý bằng TypeScript là không thể gán cho các chữ ký chỉ số tương thích khác, do sự hiện diện của 57. 4 TypeScript 4.2 cho phép gán này. Tuy nhiên, nó không cho phép gán các thuộc tính không tùy chọn với 57 trong các loại của chúng, cũng không cho phép viết 57 vào một khóa cụ thể: 5 Quy tắc mới cũng không áp dụng cho chữ ký chỉ số số, vì chúng được coi là giống như mảng và dày đặc: 6 Bạn có thể hiểu rõ hơn về sự thay đổi này bằng cách đọc lên PR ban đầu. Tuyên bố thiếu chức năng trợ giúpNhờ yêu cầu kéo theo cộng đồng từ Alexander Tarasyuk, giờ đây chúng tôi có một cách khắc phục nhanh chóng để tuyên bố các chức năng và phương thức mới dựa trên trang web cuộc gọi! Phá vỡ thay đổiChúng tôi luôn cố gắng để giảm thiểu các thay đổi phá vỡ trong một bản phát hành. TypeScript 4.2 chứa một số thay đổi phá vỡ, nhưng chúng tôi tin rằng chúng nên được quản lý trong một bản nâng cấp.
ts
|