TypeScriptv5.4INTERMEDIATE
TypeScript Class & Type System
Essential syntax reference for TypeScript classes, generic constraints, type-only modifiers, control flow analysis, and type evaluation.
12 min read
Category: Frontend
Class Declarations
Field modifiers and constructor parameter properties.
Parameter Properties & Modifiers
Automatic instance field initialization via constructor parameters.
TypeScript Class Member Modifiers
| Modifier | Access / Effect | Runtime Enforcement | Typical Use |
|---|---|---|---|
| public | Accessible everywhere; default | Normal JavaScript property | Public class API |
| protected | Class and subclasses | Type-checker only | Extension points for derived classes |
| private | Declaring class only | Type-checker only | Compile-time encapsulation |
| #private | Declaring class only | Yes; JavaScript private field | Hard runtime encapsulation |
| readonly | Cannot be reassigned after initialization | Type-checker only | Stable reference or value |
| static | Member belongs to the class constructor | Yes | Factories, constants, shared utilities |
typescript
class User extends Account implements Updatable {
id: string;
readonly createdAt = new Date();
constructor(public email: string) {
super();
}
}
Code Annotations:
extends AccountSubclasses base Account class
public email: stringParameter property automatically sets instance field
Control Flow & Narrowing
Type guard functions and predicate assertions.
Type Predicates & Narrowing
Custom type assertion functions with obj is Type return signatures.
typescript
function isErrorResponse(obj: Response): obj is APIErrorResponse {
return obj instanceof APIErrorResponse;
}
if (isErrorResponse(res)) {
console.error(res.message);
}
Code Annotations:
obj is APIErrorResponseType predicate assertion for scope narrowing