1
我嘗試寫一些函數,貓鼬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酒店,一切都運行在運行時。
謝謝!
怎麼樣'(用戶)[K]'? –
Ryan
哪個版本的TypeScript?你的例子[在遊樂場工作](http://www.typescriptlang.org/play/#src=interface%20IUser%20 {%0D%0A%20%20name%3A%20string%0D%0A}%0D% 0A%0D%0Afunction%20userDetails%20%28user%3A%20IUser%2C%20keys%3A%20string []%29%3A%20string%20 {%0D 0A%%20%20return%20keys.map%28%28K %3A%20string%29%3A%20string%20%3D%3E%20 {%0D 0A%%20%20%20%20return%20%60-70%20%24 {K}%20%3A%20% 24 {用戶[k]的}%60%0D 0A%%20%20}%29%0D 0A%%20%20.join%28%27 \ N%27%29%0D 0A%})。 – Paleo
@Ryan它的作品! \ o /非常感謝。如果你需要,你可以把它寫成答案 – aherve