【发布时间】:2019-11-24 00:07:47
【问题描述】:
我有一个DTO,我使用它来映射其中一个键
DTO 和 SecurityMode 枚举:
enum SecurityMode {
mode1 = 'mode1’,
mode2 = 'mode2’,
mode3 = 'mode3’
}
export default SecurityMode;
import SecurityMode from 'shared/common/enums/SecurityMode';
export default interface IAuthUser {
security: Record<SecurityMode, boolean>;
}
错误:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Record<SecurityMode, boolean>'.
No index signature with a parameter of type 'string' was found on type 'Record<SecurityMode, boolean>'.ts(7053)
这是代码的一部分,出现错误:
{user && user.security && user.security[securityKey] && ( // The error is on user.security[securityKey]
<Fragment>
<span">{securityKey}</span>
</Fragment>
)}
那么,我该如何消除这个错误呢?他有什么问题?
我尝试将安全性更改为:
security: Record<{[key: string]: SecurityMode, boolean}>
但是 Record Generic 只需要 2 个参数,当我将它们放入 var 时,我知道我将它们用作值。请帮忙..
【问题讨论】:
标签: javascript reactjs typescript enums interface