Skip to Content
πŸ“ Notes🌐 LanguagesTypeScriptAdvance Use Cases

Typescript Advance Use Cases

Some use cases of how those type helps.

Type value filter

Assume we have a fixed object like this, and we want GET only records

type AppRouteMap = { "/users/dummyTest": "GET"; "/users/checkAvaiableUser": "POST"; "/files/uploadSignatureTest": "POST"; "/files/uploadDocsTest": "POST"; "/testing/dummyTest": "GET"; } type OnlyGetRoutes = { [K in keyof AppRouteMap as AppRouteMap[K] extends "GET" ? K : never]: AppRouteMap[K] }; // type OnlyGetRoutes = { // "/users/dummyTest": "GET"; // "/testing/dummyTest": "GET"; // } export type RoutersPathLessStrictOnlyGet = `${keyof OnlyGetRoutes}${string}`; // type RoutersPathLessStrictOnlyGet = `/users/dummyTest${string}` | `/testing/dummyTest${string}`

This time we keep keys that start with β€œ/files/”:

type FilesOnly = { [K in keyof AppRouteMap as K extends `/files/${string}` ? K : never]: AppRouteMap[K] }; // { // "/files/uploadSignatureTest": "POST"; // "/files/uploadDocsTest": "POST"; // }
Last updated on