我有一個tailwind.config.ts。我想將型別添加DMSans-Regular為ValidFont. 我怎樣才能做到這一點?
type ValidFont = "DMSans-Regular"
module.exports = {
theme: {
extend: {
fontSize: {
md: "32px",
},
fontFamily: {
primary: "DMSans-Regular"
}
},
},
};
uj5u.com熱心網友回復:
最簡單的方法是使用將與 TypeScript 4.9 一起發布的satisfies運算子。這使您可以根據背景關系將fontFamily屬性解釋為 a Record<string, ValidFont>,這意味著具有任何鍵但其屬性為 a 的物件ValidFont,而無需實際將屬性擴大到該型別并忘記實際的鍵和值:
type ValidFont = "DMSans-Regular" | "Velveetica"
const exp = {
theme: {
extend: {
fontSize: {
md: "32px",
},
fontFamily: {
primary: "DMSans-Regular",
secondary: "DMSans-Spicy", // error
tertiary: "Velveetica"
} satisfies Record<string, ValidFont>
},
},
};
如果您需要在 TypeScript 4.9 之前執行此操作,您可以satisfies使用如下柯里化函式模擬運算子:
const satisfiez = <T,>() => <U extends T>(u: U) => u
const exp = {
theme: {
extend: {
fontSize: {
md: "32px",
},
fontFamily: satisfiez<Record<string, ValidFont>>()({
primary: "DMSans-Regular",
secondary: "DMSans-Spicy", // error
tertiary: "Velveetica"
})
},
},
};
Playground 代碼鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517332.html
標籤:打字稿顺风CSS
下一篇:IsNaN顯示其他結果
