型遊び
型遊び
/********************************************/ // prettier-ignore export const systemModifierList = [ 'STAB', 'Critical', 'MultiTarget', 'NotFullProtect', 'Burn', 'ParentalBond', ] as const; export type systemModifier = typeof systemModifierList[number]; // prettier-ignore export const statStageModifierList = [ 'Plus_1', 'Plus_2', 'Plus_3', 'Plus_4', 'Plus_5', 'Plus_6', 'Minus_1', 'Minus_2', 'Minus_3', 'Minus_4', 'Minus_5', 'Minus_6', ] as const; export type statStageModifier = typeof statStageModifierList[number]; // prettier-ignore type ModifierOfCategory<T extends modifierCategory> = T extends 'System' ? systemModifier : T extends 'StatStage' ? statStageModifier : never; type ModifierOption = { [category in modifierCategory]?: ModifierOfCategory<category>[]; }; /********************************************/ const modifierOption: ModifierOption = { System: ['Burn'], StatStage: ['Plus_6'], };