Twitter

Categories

Category: TypeScript

JavaScript, TypeScript

Conditioning Knockout Observables: reject values

Wouldn’t it be nice if we could restrict the value written to a Knockout observable? Some values might mess up your model completely while others just don’t make sense. How would one create a conditioned observable that rejects invalid values? It turns out that conditioning an observable is not so hard.

JavaScript, Node.js, TypeScript

Support both Node.js and browser JS in one TypeScript file

TypeScript allows for better JavaScript development. JavaScript is getting useful in more domains. But different systems require different ways of handling modules and exposing features. TypeScript solves this by compiling differently when a target is specified.

But what if you need a TypeScript script that supports both vanilla browser JS and Node.js? What if you need to expose 10+ classes?

JavaScript, Node.js, TypeScript

Convert QUnit test to Mocha / Chai

Recently I’ve been playing around with NPM. I switched my unit tests from QUnit to Mocha. This was not as straight forward as one would hope. In this blog I’ll show some example code. At the end I’ll link to a side by side comparison of the entire test project. Hopefully it helps you to convert your code. I’ll be using the Chai BDD assertion engine.

TypeScript

Strongly Typed Events 0.3.0 – now with Signals

Turns out that I needed an even smaller type of event: the signal. It is an event that has no data; it just fires. The Strongly Typed Events project started with the IEvent event that was styled after .Net. Then the ISimpleEvent was added in 0.2.0, for scenarios when no sender is necessary. Now I’ve added the ISignal to version 0.3.0.

JavaScript, TypeScript

Strongly Typed Events 0.2.0 – now with Simple Events

A while ago I started a GitHub project for Strongly Typed Events in TypeScript. I’ve uploaded the second version (0.2) with support for ISimpleEvent and I changed the way you can expose the dispatcher as an event. The code is 100% backwards compatible with version 0.1 – you might need to update some references.