2
這種事情現在發生在我身上多次,所以我想問我是否做錯了什麼或者Typescript/Angular真的不這樣做。根據我的理解,最大的優勢之一是變量,參數等的類型聲明(接口)。Typescript/Angular Type聲明沒用?
今天,我有這個問題:
一個簡單的開關按鈕:
<p-selectButton [options]="posLayouts" (onChange)="handle($event)" [(ngModel)]="pageSize"></p-selectButton>
的變量:
pageSize: number;
posLayouts: SelectItem[];
//On mistake I setted the value here as a string
this.posLayouts.push({label:'1 Woche', value: '1'});
this.posLayouts.push({label:'3 Wochen', value: '3'});
在更改功能我僅僅是調用另一個函數的值超出posLayouts。
handle(e){getPager(this.pageSize)}
getPager(pageSize: number = 3){
let totalPages: number;
totalPages = 23 + pageSize -1
console.log(totalPages)
}
console.log()返回比eiter 230或232而不是所需的23或25.它將pageSize作爲字符串。這種類型的錯誤很難找到,這次我有運氣,因爲它很容易找到... 沒有Angular或tslint或我的編輯器告訴我,我不能在一個數字變量中存儲字符串。
爲了我的理解,typescript應該檢查兼容性,還是Angular以某種方式禁用了這裏的監聽?或者我做錯了什麼?
恩,這不是我想聽的,但謝謝。所以用戶輸入仍然需要由我自己進行類型檢查。 – Doomenik
是的,類型僅用於開發和構建過程(更高效的樹狀抖動)。如果他們會在生成的JS代碼中隨處進行類型檢查,那麼性能影響會太高。 –