Project Euler 2 - Even Fibonacci Numbers - Solved with TypeScript

The second Project Euler problem - Even Fibonacci Numbers - is stated as follows - By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

function isEven(n:number): boolean {
    return n % 2 === 0;
}

function *fibonacci(target:number) {
    let current = 1;
    let next = 2;

    while (current < target) {
        yield current;
        [current, next] = [next, current + next];
    }
}

function sum(previous:number, current:number):number {
    return previous + current;
}

function solve(target:number):number {
    // Generate a fibonacci sequence with all
    // numbers below 4 000 000.
    return [...fibonacci(target)]
        // Keep all even numbers.
        .filter(isEven)
        // Sum the remaining numbers.
        .reduce(sum);
}


solve(4000000)