我使用useReducer包含我的状态的 React hooks,假设我有 3 个状态字段 - a、b和c。这些字段联系在一起并且大部分都一起改变——所以reducer函数是有凝聚力的。如果我有d与其他状态不内聚的不同状态字段 - 我应该在同一组件中同时使用useState(for d) 和useReducer(for a, band c) 还是最好使用相同的减速器函数?此外 - 如果我有更多类似的字段d在类似的地方发生变化 - 我应该使用 2 个单独的减速器吗?此案例的最佳实践是什么?
TypeScript 有一个内置类型Record<Key,Value>,有助于强制对象键和值。将其与枚举或字符串文字联合类型相结合 - 您可以强制并查找丢失键中的错误。我正在 TypeScript 中寻找一种有助于强制字符串文字联合的所有 Record值的类型。意义:
type ShortLetterTillC = "A" | "B" | "C";
type LongLetterTillC = "Ai" | "Bi" | "Ci";
type LongLetterTillD = "Ai" | "Bi" | "Ci" | "Di";
// TS2741: Property 'C' is missing in type '{ A: "Ai"; B: "Bi"; }' but required in type 'Record '.
const dictionaryMissingC: Record<ShortLetterTillC, LongLetterTillC> = {
A: "Ai",
B: "Bi"
};
// Works - good
const dictionaryC: Record<ShortLetterTillC, LongLetterTillC> = {
A: "Ai", …Run Code Online (Sandbox Code Playgroud)