TypeScript

TypeScriptでFizzBuzz(generator, destructuringなどして)

TypeScriptでFizzBuzzしてみました。(target:ES2015以上)
targetがES5以下だとArray#keys()が空オブジェクトになってrange返してくれないのにちょっとはまりました。

fizz.ts
class Fizz {
    public static spec: Array<[number, string]> = [[15, "FizzBuzz"], [5, "Buzz"], [3, "Fizz"]];
    public static *buzz(size: number) {
        for (const i of Array(size).keys()) {
            const [_, result] = Fizz.spec.find(([n, s]) => i % n === 0) || [0, i.toString()];
            yield result;
        }
    }
}

Array.from(Fizz.buzz(20)).forEach((i) => console.log(i));