3:I[4707,[],""] 5:I[6423,[],""] 6:I[2798,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"ThemeProvider"] 7:I[9723,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"SmoothScroll"] 8:I[6079,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"CursorSpotlight"] 9:I[532,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"Navbar"] a:I[2205,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"Footer"] b:I[3772,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"Toaster"] c:I[3095,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"Analytics"] d:I[8661,["972","static/chunks/972-a66c538a2b036653.js","50","static/chunks/50-1257a4928d3dee1b.js","868","static/chunks/868-b5274bfdefe30153.js","79","static/chunks/79-108bb73aa9269941.js","854","static/chunks/854-33d3781a3ff18775.js","185","static/chunks/app/layout-fb8da892d0fbbf84.js"],"ChatWidget"] 4:["slug","typescript-tips-for-large-codebases","d"] 0:["uuc30tI-qsfwjf4cKjy77",[[["",{"children":["blog",{"children":[["slug","typescript-tips-for-large-codebases","d"],{"children":["__PAGE__?{\"slug\":\"typescript-tips-for-large-codebases\"}",{}]}]}]},"$undefined","$undefined",true],["",{"children":["blog",{"children":[["slug","typescript-tips-for-large-codebases","d"],{"children":["__PAGE__",{},[["$L1","$L2",null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","blog","children","$4","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","blog","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0666b722fae2b471.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"dark","children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n var theme = localStorage.getItem('theme');\n var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n if (theme === 'light') {\n document.documentElement.classList.remove('dark');\n document.documentElement.classList.add('light');\n } else {\n document.documentElement.classList.add('dark');\n document.documentElement.classList.remove('light');\n }\n })();\n "}}]}],["$","body",null,{"className":"__variable_f367f3 __variable_ce197d font-sans","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"@id\":\"https://cogentsoftware.com#organization\",\"name\":\"Cogent Softwares\",\"url\":\"https://cogentsoftware.com\",\"logo\":\"https://cogentsoftware.com/favicon.svg\",\"description\":\"Cogent Softwares helps startups and enterprises build web and mobile applications (Android & iOS), blockchain applications, and AI automation systems.\",\"email\":\"hello@cogentsoftwares.com\",\"telephone\":\"+91 8000555268\",\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"12, Nilkanth avenue, Motavarachha, Surat, Gujarat, India - 394101\"}}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cogent Softwares\",\"url\":\"https://cogentsoftware.com\",\"description\":\"Cogent Softwares helps startups and enterprises build web and mobile applications (Android & iOS), blockchain applications, and AI automation systems.\",\"publisher\":{\"@id\":\"https://cogentsoftware.com#organization\"}}"}}],["$","$L6",null,{"attribute":"class","defaultTheme":"dark","enableSystem":false,"storageKey":"theme","children":[["$","$L7",null,{}],["$","$L8",null,{}],["$","div",null,{"className":"relative flex min-h-screen flex-col","children":[["$","$L9",null,{}],["$","main",null,{"className":"flex-1","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}],["$","$La",null,{}]]}],["$","$Lb",null,{"position":"top-right","richColors":true,"closeButton":true}],["$","$Lc",null,{}],["$","$Ld",null,{}]]}]]}]]}]],null],null],["$Le",null]]]] 2:[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"TypeScript Tips for Large Codebases\",\"description\":\"Strict mode stings until it saves a Friday night. Shared types, path aliases, and habits that keep a growing repo from turning into copy-paste soup.\",\"datePublished\":\"2025-11-10T00:00:00.000Z\",\"dateModified\":\"2025-11-10T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Cogent Softwares\",\"url\":\"https://cogentsoftware.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Cogent Softwares\",\"url\":\"https://cogentsoftware.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://cogentsoftware.com/favicon.svg\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://cogentsoftware.com/blog/typescript-tips-for-large-codebases\"},\"image\":[\"https://cogentsoftware.com/og.png\"]}"}}],["$","section",null,{"className":"section-padding","children":["$","div",null,{"className":"container max-w-3xl","children":["$","article",null,{"children":[["$","p",null,{"className":"text-xs uppercase tracking-[0.2em] text-muted-foreground","children":"2025-11-10"}],["$","h1",null,{"className":"mt-2 text-4xl font-semibold","children":"TypeScript Tips for Large Codebases"}],["$","p",null,{"className":"mt-4 text-lg text-muted-foreground","children":"Strict mode stings until it saves a Friday night. Shared types, path aliases, and habits that keep a growing repo from turning into copy-paste soup."}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"5 min read"}],["$","div",null,{"className":"prose dark:prose-invert mt-8 max-w-none prose-headings:font-heading prose-a:text-primary prose-pre:bg-muted/50","children":[["$","h1",null,{"children":"TypeScript Tips for Large Codebases"}],"\n",["$","p",null,{"children":"TypeScript pays off when the codebase is too big to hold in your head. The compiler becomes a second reviewer. These are the settings and habits we use so refactors do not turn into archaeology projects."}],"\n",["$","h2",null,{"children":"Turn strictness on purpose"}],"\n",["$","p",null,{"children":[["$","code",null,{"children":"strict: true"}]," in ",["$","code",null,{"children":"tsconfig"}]," catches null mistakes, implicit any, and a pile of footguns. If the legacy code screams, enable flags one at a time (",["$","code",null,{"children":"strictNullChecks"}]," first, often) and fix in slices. Short-term pain beats mysterious runtime bugs in prod."]}],"\n",["$","h2",null,{"children":"Path aliases that match your folders"}],"\n",["$","p",null,{"children":["Aliases like ",["$","code",null,{"children":"@/components"}]," or ",["$","code",null,{"children":"@/lib"}]," keep imports readable and make moves less painful. Wire ",["$","code",null,{"children":"paths"}]," in ",["$","code",null,{"children":"tsconfig"}]," and mirror the same mapping in your bundler (Next.js, Vite, etc.) so the editor and the build agree."]}],"\n",["$","h2",null,{"children":"Shared types in monorepos"}],"\n",["$","p",null,{"children":["Put shared interfaces in a small package (",["$","code",null,{"children":"packages/types"}]," or similar) that apps import. Keep that package light so it builds fast. Align ",["$","strong",null,{"children":"TypeScript versions"}]," across packages so you do not get “works in app A, breaks in app B.”"]}],"\n",["$","h2",null,{"children":"Consistency wins"}],"\n",["$","p",null,{"children":["One base ",["$","code",null,{"children":"tsconfig"}]," extended by apps and packages, one ESLint setup with TypeScript rules (for example consistent type-only imports), and CI running ",["$","code",null,{"children":"tsc --noEmit"}]," so broken types never merge."]}],"\n",["$","p",null,{"children":"Large codebases stay healthy when types are boring and predictable. We help teams tighten configs without stopping delivery."}],"\n",["$","hr",null,{}],"\n",["$","p",null,{"children":[["$","em",null,{"children":"Cogent Softwares"}],", Full-stack and platform development."]}]]}]]}]}]}]] e:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"TypeScript Tips for Large Codebases | Cogent Softwares"}],["$","meta","3",{"name":"description","content":"Strict mode stings until it saves a Friday night. Shared types, path aliases, and habits that keep a growing repo from turning into copy-paste soup."}],["$","link","4",{"rel":"canonical","href":"https://cogentsoftware.com/blog/typescript-tips-for-large-codebases"}],["$","meta","5",{"property":"og:title","content":"TypeScript Tips for Large Codebases"}],["$","meta","6",{"property":"og:description","content":"Strict mode stings until it saves a Friday night. Shared types, path aliases, and habits that keep a growing repo from turning into copy-paste soup."}],["$","meta","7",{"property":"og:url","content":"https://cogentsoftware.com/blog/typescript-tips-for-large-codebases"}],["$","meta","8",{"property":"og:site_name","content":"Cogent Softwares"}],["$","meta","9",{"property":"og:image","content":"https://cogentsoftware.com/og.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"TypeScript Tips for Large Codebases"}],["$","meta","13",{"property":"og:type","content":"article"}],["$","meta","14",{"property":"article:published_time","content":"2025-11-10T00:00:00.000Z"}],["$","meta","15",{"property":"article:author","content":"Cogent Softwares"}],["$","meta","16",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","17",{"name":"twitter:title","content":"TypeScript Tips for Large Codebases"}],["$","meta","18",{"name":"twitter:description","content":"Strict mode stings until it saves a Friday night. Shared types, path aliases, and habits that keep a growing repo from turning into copy-paste soup."}],["$","meta","19",{"name":"twitter:image","content":"https://cogentsoftware.com/og.png"}],["$","link","20",{"rel":"icon","href":"/favicon.svg"}]] 1:null