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代码中随处进行类型检查,那么性能影响会太高。 –