【发布时间】:2018-01-20 14:23:37
【问题描述】:
为了编写更健壮的代码,我正在考虑将 TypeScript 用于我的基于 Web 的项目。到目前为止,我对这门语言的经验相对较少,但我遇到了一个我很难搜索的问题。
考虑下面的 TypeScript 代码:
public static getResponseCode(resObj: object): number {
let c: number = resObj["c"]
return c;
}
有没有一种方法可以强制 TypeScript 编译器将我拉到这里并告诉我 resObj["c"] 可能不是数字,我需要先检查它是否是数字?例如。我可以强制 TypeScript 让我像这样(或类似的东西)重写代码吗?:
public static getResponseCode(resObj: object): number {
if (typeof resObj["c"] !== "number") { return APIResponseCode.UnknownFailure; }
let c: number = resObj["c"]
return c;
}
我希望我得到的结果仅仅是因为resObj["c"] 的类型是any。我可以在这里做什么? TypeScript 中是否有通用模式?
【问题讨论】:
-
使用
resObj.c而不是resObj["c"]对属性c进行类型检查。 -
类型
object没有属性c。 @torazaburo
标签: typescript typing