[英]Dynamically access prisma model
我們有許多不同的游戲,雖然我可以編寫一個使用一堆 if 語句的函數來獲得正確的模型,但我想更清楚地解決它。
我目前有以下代碼:
const { game, id } = request.params as { game: string; id: string }
const gameMap = {
'd3' : prisma.d3Profile
}
if (!Object.keys(gameMap).includes(game)) {
return { error: 'unknown game' }
}
// @ts-ignore
const profile = gameMap[game].findUnique({
where: {
id: parseInt(id)
}
})
if (profile) {
return profile
}
return { error: 'profile not found'}
一切正常,但我很樂意在不使用 ts-ignore 的情況下解決這個問題。 有誰知道如何解決這個問題?
顯式定義 request.params 的類型
const gameMap = {
'd3' : prisma.d3Profile
}
const { game, id } = request.params as { game: keyof typeof gameMap; id: string }
這樣打字稿就有辦法正確推斷它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.