我正在尝试编写一些函数,将猫鼬User
模型转换为带有项目符号点的字符串:
// Simplified version so you get the idea
interface IUser {
name: string
}
function userDetails (user: IUser, keys: string[]): string {
return keys.map((k: string): string => {
return `- ${k} : ${user[k]}`
})
.join('\n')
}
但是我遇到了一个奇怪的编译器错误,user[k]
下划线标出:
对象类型的索引签名隐式具有“ any”类型。
有没有一种方法可以“强制”打字稿为user[k]
字符串?我尝试过user[k] as string
还是<string> user[k]
没有成功。
另外,如果我${user[k]}
从返回的字符串中删除,则编译器将停止抱怨
Appart从编译器错误出发,一切都在运行时起作用。
谢谢 !
试试这个:
function userDetails(user: IUser, keys: string[]): string {
let dic: { [prop: string]: string } = <any>user
return keys.map((k: string): string => {
return `- ${k} : ${dic[k]}`
})
.join('\n')
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句