TypeScreeps: Why Typescript?


This article is aimed at complete beginners or people frustrated with JavaScript, perhaps coming from other programming languages. Already sold on the idea? Skip directly to this article where I give instructions for getting started.

Why TypeScript?

When I first started learning JavaScript, one thing that I missed were types. Strict typing in your programming language helps you catch a lot of bugs. If you are accustomed to types, it helps you read and understand the code. In the hands of a good IDE, it can make refactoring a breeze. As your codebases becomes larger, it makes maintaining the code simpler.

I hadn’t been using JavaScript very long when I decided to try TypeScript. I thought it might be too soon to try TypeScript without first feeling adept in JavaScript, but it turns out that wasn’t true. Coming from an object-oriented background, TypeScript actually helped me understand and be better at JavaScript.

TS vs JS in the IDE

Let’s try a little game. Here is a function I wrote in JS to calculate melee damage for a creep. How many bugs can you spot?

function meleeDamage(creep) {
    let totalDamage = 0;
    for (let part of creep.body) {
        if (part.name !== ATTACK) { continue; }
        let partDamage = ATTACK;
        if (part.boost) {
            partDamage *= BOOSTS[part.name][part.boost][ATTACK];
        totalDamage += partDamage;
let damage = meleeDamage("myCreep");
if (damage > 0) {

No doubt you caught at least a few, perhaps all of them. Let’s see how the TypeScript compiler does.

Autocomplete in TS

If you like a little handholding by your IDE, then you will like TypeScript. It won’t stop at hand-holding, it will tuck you in and kiss you on the forehead.

Alright, sign me up!

If you’d like to give TypeScript a spin, I’ve written an article that should get you up and running.