V i thi t l p đó,ớ ế ậ TypeScript bây gi sờ ẽ complain n u b n c g ng truy c p ế ạ ố ắ ậ
thu c tính trên m t đ i t ng có th làộ ộ ố ượ ể null và b n s ph i "reassure" nó vạ ẽ ả ề
s t n t i c a đ i t ng, ví d : b ng cách gói ph n đó v i đi u ki nự ồ ạ ủ ố ượ ụ ằ ầ ớ ề ệ if
(textE1) {...}
Khác v iớ querySelector, tr ng h p ph bi n khác cho đi u này là ph ng ườ ợ ổ ế ề ươ
th cứ Array.find - k t qu tr v có th làế ả ả ề ể undefinded.
Không ph i đi u gì b n mu n tìm ki m nó cũng s có nhé!!!.ả ề ạ ố ế ẽ
Tip 4. “I’m telling you, TS, it is there!”
Nh chúng ta đã thi t l p, v i vi c ki m tra ch t ch , TypeScript s có ư ế ậ ớ ệ ể ặ ẽ ẽ
nhi u hoài nghi h n v giá tr c a chúng ta. M c khác, đôi khi b n ch bi t ề ơ ề ị ủ ặ ạ ỉ ế
t bên ngoài có nghĩa là giá tr s đ c thi t l p. Trong nh ng tr ng h p ừ ị ẽ ượ ế ậ ữ ườ ợ
ngo i l nh v y, b n có th s d ng "post-fix expression operator" (hay ạ ệ ư ậ ạ ể ử ụ
nói cách d hi u là d u !):ễ ệ ấ
const textEl = document.querySelector('input');
console.log(textEl!.value);
// � with "!" we assure TypeScript
// that 'textEl' is not null/undefined
Tip 5. When migrating to TS…
Thông th ng, khi b n có m t codebase cũ mà b n mu n chuy n sang ườ ạ ộ ạ ố ể
TypeScript, m t trong nh ng đi u m t khá nhi u time là làm cho code cũ ộ ữ ề ấ ề
tuân th các quy t c TSLint c a b n. Nh ng gì b n có th làm là ch nh s a ủ ắ ủ ạ ữ ạ ể ỉ ử
t t c các t p b ng cách thêmấ ả ệ ằ
// tslint:disable
trong dòng đ u tiên c a m i dòng, đ TSLint không ki m tra chúng. Sau đó,ầ ủ ỗ ể ể
ch khi m t developer làm vi c trên m t t p c th , anh ta s b t đ u b ng ỉ ộ ệ ộ ệ ụ ể ẽ ắ ầ ằ
cách xóa dòng này và s a t t c các l iử ấ ả ỗ linting ch trong t p đó. B ng cách ỉ ệ ằ