// Pagination example with a maximum of 100 items per page
interface PaginationParams {
page: number;
itemsPerPage: PositiveRange<1, 100>;
}
async function fetchUsers({ page, itemsPerPage }: PaginationParams) {
const offset = (page - 1) * itemsPerPage;
return await db.users.findMany({
skip: offset,
take: itemsPerPage,
});
}
// Valid usage:
fetchUsers({ page: 1, itemsPerPage: 50 }); // ✅ OK
// Type errors:
fetchUsers({ page: 1, itemsPerPage: 200 }); // ❌ Error: 200 exceeds maximum of 100
fetchUsers({ page: 1, itemsPerPage: 0 }); // ❌ Error: 0 is not in range
Represents a range of positive integers from N to M (inclusive). Both bounds must be positive integers.