網站搜尋

typescript - 我如何建立一個具有動態鍵的 zod 物件?


我們可以創建一個 Zod 對象來驗證一個對象是否符合模式中定義的鍵,但我只想在鍵是字符串時進行驗證,而不是鍵等於某個值時進行驗證

在 TypeScript 中,我們可以通過使用來實現這一點

Record<string, string>;

但是在 zod,我試了這個

const data = z.object({
  [z.string()]: z.string(),
});

但是它不起作用

答案#1

你正在尋找 z.record,它可以這樣使用:

const data = z.record(z.string(), z.string());