config.d.ts 431 B

1234567891011121314151617181920212223
  1. interface RoomConfigType {
  2. limit?: IntRange<5, 51>;
  3. masterId?: string;
  4. }
  5. type Enumerate<
  6. N extends number,
  7. Acc extends number[] = [],
  8. > = Acc['length'] extends N
  9. ? Acc[number]
  10. : Enumerate<N, [...Acc, Acc['length']]>;
  11. type IntRange<F extends number, T extends number> = Exclude<
  12. Enumerate<T>,
  13. Enumerate<F>
  14. >;
  15. type JSONValue =
  16. | string
  17. | number
  18. | boolean
  19. | { [x: string]: JSONValue }
  20. | Array<JSONValue>;