gpt4 book ai didi

angular - Typescript/Angular 类型声明没用?

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:05 27 4
gpt4 key购买 nike

这在我身上发生过多次,所以我想问问我是不是做错了什么,或者 Typescript/Angular 真的不这样做。根据我的理解,最大的优势之一是变量、参数等的类型声明(接口(interface))。

今天我遇到了这个问题:

一个简单的开关按钮:

<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'});

在 change 函数中,我只是用 posLayouts 中的值调用了另一个函数。

handle(e){getPager(this.pageSize)}
getPager(pageSize: number = 3){
let totalPages: number;
totalPages = 23 + pageSize -1
console.log(totalPages)
}

console.log(),返回 230 或 232 而不是想要的 23 或 25。它以 pageSize 作为字符串。这种类型的错误很难发现,这次我很幸运,因为它很容易找到......Angular 或 tslint 或我的编辑器都没有告诉我不能将字符串存储在数字变量中。

据我了解,typescript 应该检查兼容性,或者 Angular 是否以某种方式禁用了此处的监听?或者我做错了什么?

最佳答案

TypeScript 类型仅供开发工具(linter、自动完成等)使用。
对于运行时,所有代码都转换为 JavaScript,并且不再有可用的类型信息。
因此,对于来自代码外部的用户输入或其他数据源,您需要自己确保数据符合您期望的类型。

关于angular - Typescript/Angular 类型声明没用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44539570/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com