Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
12 posts found
Conditional Types in TypeScript: Making Decisions at the Type Level
Frontend PART 01

Conditional Types in TypeScript: Making Decisions at the Type Level

We look at the T extends U ? X : Y syntax, what extends means for assignability, distributive behavior over unions, turning it off with [T] and filtering unions with never, backed by real tsc output.

3 Nov 2026 8 min 0
infer in TypeScript: Capturing Types Inside Conditional Types
Frontend PART 02

infer in TypeScript: Capturing Types Inside Conditional Types

We use infer to capture pieces of a matching type, write ReturnType, Parameters and Awaited ourselves, match tuple and string patterns, constrain infer and avoid the overload pitfall.

3 Nov 2026 8 min 0
Mapped Types in TypeScript: Producing a New Type from an Existing One
Frontend PART 03

Mapped Types in TypeScript: Producing a New Type from an Existing One

We cover mapped type syntax, how homomorphic mapped types carry readonly and ? modifiers, managing modifiers with + and -, key remapping with as, and filtering properties with never.

3 Nov 2026 8 min 0
Template Literal Types in TypeScript: Building Strings at the Type Level
Frontend PART 04

Template Literal Types in TypeScript: Building Strings at the Type Level

We cover union products with template literal types, patterns like ${number}, the Uppercase and Capitalize intrinsics, deriving event names, generating keys with mapped types and parsing routes with infer.

3 Nov 2026 8 min 0
Recursive Types in TypeScript: JSON, DeepReadonly and DeepPartial
Frontend PART 05

Recursive Types in TypeScript: JSON, DeepReadonly and DeepPartial

We cover self-referencing types, a recursive JSON type, DeepReadonly and DeepPartial with their function and array pitfalls, recursive conditional types and the TS2589 limit with tail recursion.

3 Nov 2026 8 min 2
Variance and Assignability in TypeScript: Covariance, Contravariance and strictFunctionTypes
Frontend PART 06

Variance and Assignability in TypeScript: Covariance, Contravariance and strictFunctionTypes

We look at the direction of assignability, covariance in return types, contravariance in parameters, strictFunctionTypes, method bivariance, the array soundness hole and in/out variance annotations.

3 Nov 2026 8 min 1
Branded Types in TypeScript: Keeping UserId and OrderId Apart
Frontend PART 07

Branded Types in TypeScript: Keeping UserId and OrderId Apart

Where structural typing can't tell apart values with the same shape but different meaning, we use brands, produce them with validation functions and build a sturdier Brand helper with unique symbol.

3 Nov 2026 7 min 1
Decorators in TypeScript: Standard TC39 Decorators and the context Object
Frontend PART 08

Decorators in TypeScript: Standard TC39 Decorators and the context Object

We look at the standard decorators that arrived in TS 5.0: method, class, field and accessor decorators, the context object, why they aren't erasable and how they differ from the old experimentalDecorators setting.

3 Nov 2026 8 min 1
using and await using in TypeScript: Resource Management with Symbol.dispose
Frontend PART 09

using and await using in TypeScript: Resource Management with Symbol.dispose

We look at the TypeScript side of using and await using from TS 5.2: the Disposable types, the lib setting you need, the compiler's checks, DisposableStack, and what tsc's output means for Node and Safari.

3 Nov 2026 7 min 0
Type-Level Programming in TypeScript: Solving the Easy type-challenges
Frontend PART 10

Type-Level Programming in TypeScript: Solving the Easy type-challenges

We solve ten easy type-challenges (MyPick, MyReadonly, TupleToObject, First, Length, MyExclude, MyAwaited, If, Concat, Includes), each checked with type-level tests built on Equal and Expect.

3 Nov 2026 8 min 1
Migrating from JavaScript to TypeScript: checkJs, JSDoc and Gradual strict
Frontend PART 11

Migrating from JavaScript to TypeScript: checkJs, JSDoc and Gradual strict

We walk through migrating a JavaScript project to TypeScript gradually: allowJs, checkJs and // @ts-check, writing types with JSDoc, the JSDoc changes in TypeScript 7, gradual strict and @ts-expect-error.

3 Nov 2026 8 min 2
TypeScript 7 and Beyond: The Go-Based Compiler and the New Defaults
Frontend PART 12

TypeScript 7 and Beyond: The Go-Based Compiler and the New Defaults

We look at the Go-based TypeScript 7 compiler, the defaults that came with 6.0, the settings removed in 7.0, isolatedDeclarations, the TC39 Type Annotations proposal and what the 7.1 beta brings.

3 Nov 2026 8 min 2
Blog Map