【发布时间】:2022-01-14 23:28:45
【问题描述】:
我是 TypeScript 新手,我的场景描述如下:
我有一个这样的类型:
type response = {
totalQuantity: number;
numberOfCatogory: number
appleQuantity: number;
bananaQuantity: number;
pearQuantity: number;
};
每个单独的水果数量都有验证,在本例中是 appleQuantity、bananaQuantity 和 pearQuantity,这意味着我需要从响应中获取每个单独的水果数量。
所以我创建了一个字符串数组来保存单个属性键,如下所示:const individualParameters: string[] = ["appleQuantity", "bananaQuantity", "pearQuantity"]
函数逻辑如下:
for (const individualParameter of individualParameters) {
let individualQuantity = response[individualParameter];
...
}
但是当我构建时,TSLint 在response[individualParameter] 处抛出错误
Unsafe use of expression of type 'any'
我认为是因为响应无法识别字符串数组元素的类型?
我是 TypeScript 新手,很好奇解决这个问题的好方法。
【问题讨论】:
-
请分享可重现的示例。
individualQuantity和individualCartCountResponseParameter未声明 -
尝试使用
const individualParameters= ["appleQuantity", "bananaQuantity", "pearQuantity"] as const而不是const individualParameters: string[] = ["appleQuantity", "bananaQuantity", "pearQuantity"]
标签: typescript typescript-typings tslint