Advanced Types
Advanced

Inference Control, Satisfies, and Utility Types

Control inference in large codebases with satisfies, const assertions, utility types, and deliberate generic APIs.

50 min
4 sections
satisfies
utility-types
inference
as-const
1
2
3
4

01. Satisfies Preserves Specific Values

Section 1 of 4

Type annotations often widen useful literal information. The satisfies operator checks that a value conforms to a target type while preserving the value's specific inferred type. This is ideal for route maps, feature matrices, analytics events, and permission registries.

typescript
type FeatureConfig = {
  enabled: boolean;
  rollout: "internal" | "beta" | "general";
  owner: string;
};

const features = {
  auditTimeline: { enabled: true, rollout: "general", owner: "compliance" },
  aiTicketSummary: { enabled: true, rollout: "beta", owner: "support-ai" },
  invoiceExports: { enabled: false, rollout: "internal", owner: "billing" },
} satisfies Record<string, FeatureConfig>;

type FeatureName = keyof typeof features;
type AiTicketSummaryRollout = typeof features.aiTicketSummary.rollout;

Exercise

Create a checked route registry

Practice

Build a route registry where every route has method, path, and requiredPermission, while preserving exact route names and permission strings.

Back to Course