簡體   English   中英

動態訪問棱鏡模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM