类型'unknown'不能用作索引类型是指在 TypeScript 中使用未知类型作为索引类型时会出现编译错误。为了修复这个问题,可以使用类型断言或类型守卫来明确地指定索引类型。
const obj: unknown = { key: 'value' };
const value = (obj as { [key: string]: string })['key'];
在这个例子中,将未知类型的 obj
断言为具有字符串索引签名的对象类型 { [key: string]: string }
,然后可以使用字符串索引 'key'
访问对应的属性值。
function isObjectWithKey(obj: unknown): obj is { [key: string]: string } {
return typeof obj === 'object' && obj !== null && typeof obj['key'] === 'string';
}
const obj: unknown = { key: 'value' };
if (isObjectWithKey(obj)) {
const value = obj['key'];
}
在这个例子中,定义了一个类型守卫函数 isObjectWithKey
,该函数用于判断未知类型的对象是否具有字符串索引签名。如果通过类型守卫函数的判断,可以确保对象具有适当的索引类型,然后就可以安全地使用字符串索引 'key'
来访问属性值。
推荐的腾讯云产品: 腾讯云提供了多种云计算相关的产品和服务,以下是其中几个与开发相关的产品:
以上是一些腾讯云的产品示例,可以根据具体需求选择适合的产品来支持云计算和开发工作。
领取专属 10元无门槛券
手把手带您无忧上云