Deep runtime internals, memory models, distributed design, concurrency failure modes, and architectural decisions.
Dog extends Animal, then () => Dog is assignable to () => Animal.Dog extends Animal, then (a: Animal) => void is assignable to (d: Dog) => void (because the target function expects a Dog but can safely pass it to a handler expecting Animal).strictFunctionTypes: Disables bivariance checking for function arguments, forcing them to be checked contravariantly (methods, however, remain bivariant for OOP backwards compatibility).T extends any), the compiler evaluates the condition for each union member individually and unions the final results:type Distribute<T> = T extends any ? T[] : never;
type Res = Distribute<string | number>; // string[] | number[]
[T]. This forces the compiler to treat the entire union as a single consolidated check:type NonDistribute<T> = [T] extends [any] ? T[] : never;
type Res = NonDistribute<string | number>; // (string | number)[]
UserId and ProductId are both strings but must not be interchangeable).type Brand<T, B> = T & { readonly __brand: B };
type UserId = Brand<string, "UserId">;
noImplicitAny: Throws error on un-inferred implicit any variables.strictNullChecks: Disallows assignment of null or undefined to non-nullable variables.strictFunctionTypes: Enforces contravariant checks on function arguments.strictBindCallApply: Validates function arguments during .bind(), .call(), and .apply().strictPropertyInitialization: Verifies class properties are initialized in the constructor.noImplicitThis: Enforces explicit typing of the this context inside functions.useUnknownInCatchVariables: Forces catch block error parameters to default to unknown instead of any.You've completed the 5 free sample questions. Get unrestricted lifetime access to every question, model answer, implementation challenge, and all 27+ technologies for a single payment.
₹399 India / $9 International · One-time settlement · Zero subscription