TIP - CODE :: SYNTAX❤️✅
~~~~~~
TIP - TYPESCRIPT ::❤️❤️❤️ —————————————————————————————————————
✅Để không bị sai dữ liệu ==> syntax:: array.filter.filter.map.sort
—————————————————————————————————————
Sử dụng enum, ép ns về dạng chỉ mục số
Export enum abc -> sau đó ta dùng a = abc.indexof(‘b’);
log(abc[a+1]) -> enum tiếp theo của abc
—————————————————————————————————————
Sử dụng hasError để kiểm tra có lỗi
prePaymentForm.get('amount')?.hasError('min')"
—————————————————————————————————————
const { BBAN, interestSettlementAccount, currency } = this.termDepositInfo!;
—————————————————————————————————————
Khi chỉ dùng 1 input với 1 control
<input class="textarea-inline-control"
[formControl]="titleControl">
titleControl = new FormControl('abc');
—————————————————————————————————————
Dùng form ntn
form.get('toAccountNumber')
form.hasError('required', 'toAccountNumber')
—————————————————————————————————————
✅Dùng *ngIf sau đó dùng syntax “as avarible” để thực hiện gán tên biến
*ngIf="contactInfo.additions?.provinceName as provinceName"
—————————————————————————————————————
✅Loading cũng có thể được gọi nên, nếu ko muốn dùng biến abc = false
<div *ngIf="article$ | async as article else loadingTmpl">
<ng-template #loadingTmpl>
Loading...
</ng-template>
Cách dùng div và ng-container::
Dùng div: khi mình có dựa vào class của div
Dùng ng-container: khi mình không cần dựa vào gì từ class=“”
—————————————————————————————————————
✅Dùng cho HTML - dirty = true :: khi formControl được change, được vấy bẩn, click vô thì ko sao!
*ngIf="form.get('amount')?.dirty && form.hasError('amountRequired', 'amount')"
—————————————————————————————————————
✅Thêm dấu `+` ở đầu mỗi biến là ép kiểu cho biến đó là number
—————————————————————————————————————
✅Khi muốn thay đổi 1 biến ở service thì hãy dùng 1 hàm set::rồi gọi thông qua gn đó
—————————————————————————————————————
✅Có thể dùng syntax này thay cho Object.asign()
this.h = {...this.h ? this.h : hConfig, ...value}
== this.h = {this.h, …value}
—————————————————————————————————————
✅Sử dụng Destructuring assignment để gán product luôn, coi như tạo 1 biến tên product hứng lấy product bên trong object:: account: {product: {}}
.filter(({ product }) => ListFromAccountsOwnAccept.includes(product?.externalId || ''))
—————————————————————————————————————
✅Object.values:: trả về 1 mảng