liveBook · Manning

Type system

A type system is a programming language’s set of rules and mechanisms for classifying values and expressions and constraining their valid uses and combinations.

How 6 Manning books explain it

Kotlin in Action, 2E

A type system is the set of rules a programming language uses to classify values and expressions and check their compatibility.

How it is used
Prevents unsafe null operations during Kotlin JVM development by making nullability part of declared types.
How deep it goes
Explains static typing, inference, nullable and non-null types, assignment restrictions, and if-check narrowing; defers function-type detail.
Examples
Uses inferred Int values and String/String? length functions, including an if check that returns 0 for null.
What you can do after
Evaluate/understand whether Kotlin calls, assignments, and member access are allowed before running code.

Read how Kotlin in Action, 2E explains type system →

Functional Programming in Scala, Second Edition

A type system is the set of language rules and mechanisms that classify program expressions and constrain their valid composition.

How it is used
Guides functional implementations and enforces invariants that preserve referential transparency around local mutable state.
How deep it goes
Works through function signatures and compiler constraints, then applies polymorphic types to prevent STRef escape.
Examples
Uses partial1, curry, uncurry, compose, STRef actions, safe ST.run calls, and rejected escaping-reference programs.
What you can do after
Build implementations from signatures and diagnose unsafe state programs through type mismatches.

Read how Functional Programming in Scala, Second Edition explains type system →

Go in Action, Second Edition

A type system is the set of rules governing the classification of values and the validity of operations on them.

How it is used
Uses types to represent recipe-domain data and behavior while catching value mismatches at compile time.
How deep it goes
Works through named types, structs, collections, methods, interfaces, pointers, and runtime checks without detailing compiler internals.
Examples
Builds a recipe model and uses a pancake recipe to demonstrate scaling, measurement conversion, and grocery-list creation.
What you can do after
Build it from scratch: model a recipe domain with named types, collections, methods, and interfaces.

Read how Go in Action, Second Edition explains type system →

F# in Action: A Revised Edition of Get Programming with F#

A type system is a set of rules that assigns types to program expressions and constrains how values and operations may be combined.

How it is used
Supports concise, type-safe domain modeling and compiler-guided application development.
How deep it goes
Introduces composition from primitives through records, tuples, lists, and discriminated unions, while deferring fuller treatment of several techniques.
Examples
Contrasts list-held addresses with billing and postal record fields, and composes filtering with squaring functions.
What you can do after
Evaluate/understand how to model domain relationships and use compiler feedback to refine type-safe code.

Read how F# in Action: A Revised Edition of Get Programming with F# explains type system →

Essential TypeScript 5, Third Edition

The JavaScript type system is the set of rules governing the types and type-related behavior of JavaScript values and expressions.

How it is used
Explains JavaScript value behavior and provides the foundation for using TypeScript's static type features.
How deep it goes
Defines built-in types, coercion, typeof, and dynamic reassignment, then introduces TypeScript checking without covering deeper advanced features.
Examples
Uses mixed price values, typeof reassignment, and a built-in-types table to demonstrate runtime behavior.
What you can do after
Diagnose/debug with it by recognizing coercion, inspecting values with typeof, and choosing TypeScript checks for safer assignments.

Read how Essential TypeScript 5, Third Edition explains type system →

Julia as a Second Language

A type system is the set of rules and mechanisms a programming language uses to classify values and constrain or determine valid operations.

How it is used
Positions the type system as a core Julia feature for correctness, modeling, reuse, and performance.
How deep it goes
Introduces strictness, flexibility, and performance relevance, while deferring the promised in-depth treatment of type-system details.
Examples
Uses interactive Julia expressions and science-oriented examples such as sine calculations and rocket-launch simulations.
What you can do after
Evaluate how Julia’s type system supports correctness, flexible modeling, multiple dispatch, and performance.

Read how Julia as a Second Language explains type system →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.