-
class Rectangle { readonly height: number readonly width: number constructor(height: number, width: number) { this.height = height this.width = width } add(rec: Rectangle) { return new Rectangle(this.height+rec.height, this.width+rec.width) } } const tallRect = new Rectangle(1, 3) const wideRect = new Rectangle(3, 2) // Usage, chaining: const square = tallRect.add(wideRect).add(wideRect) console.log(square) rec3.height = 20 // TS correctly errors on this. However, the JS would still execute (when run in e.g. https://www.typescriptlang.org/play ) console.log(square)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Let's compare how 3 languages that compile to JavaScript - TypeScript, ReScript and F# with the Fable compiler - are able to chain immutable data.
-
That's because both ReScript and F# were derived from OCaml, so they also have the powerful Hindley-Milner (H-M) type inference. H-M type inference is also sound, which means you can rely on it (it prevents all type errors it claims to prevent, and doesn't give false negatives, so you can trust that all type checked programs will be correct). That's something you can't take for granted in TypeScript, even with the extra annotations.
-
F#
Discontinued Please file issues or pull requests here: https://github.com/dotnet/fsharp (by fsharp)
Let's compare how 3 languages that compile to JavaScript - TypeScript, ReScript and F# with the Fable compiler - are able to chain immutable data.
-
Let's compare how 3 languages that compile to JavaScript - TypeScript, ReScript and F# with the Fable compiler - are able to chain immutable data.