我正在尝试编写一些转换 Mongoose 的函数 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]
有下划线:
Index signature of object type implicitly has an 'any' type.
有没有办法“强制” typescript 来管理 user[k]
是一个字符串?
我试过 user[k] as string
或 <string> user[k]
没有成功。
此外,如果我删除 ${user[k]}
从返回的字符串中,然后编译器停止提示
除了编译器错误,一切都在运行时运行。
谢谢!
最佳答案
试试这个:
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')
}
关于node.js - 如何在 typescript 中强制变量的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39773246/