не может получить ... цикл работает в машинописи - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь создать пользовательские итерации в VS Code с помощью TypeScript. Это не будет повторяться вообще через это. Что я делаю неправильно? Я установил цель на es6 и попробовал с и без флага генерации нижнего уровня.

// this works
test("can iterate array", () => {
    let total = 0;
    for (let i of [1, 2, 3]) {
        total = total + i;
    }
    expect(total).toBe(6);
});

function* numbers() {
    yield 1;
    yield 2;
    yield 3;
}

let myInterable = {
    [Symbol.iterator]: numbers
};

// this does NOT work
test("can iterate custom", () => {
    let total = 0;
    for (let i of myInterable) {
        total = total + i;
    }
    expect(total).toBe(6);
});

Это релевантная часть моего tsconfig.json ...

"compilerOptions": {
  "module": "esnext",
  "target": "es6",
  "lib": [
    "es6",
    "dom"
  ],
  "sourceMap": true,
  "allowJs": true,
  "jsx": "react",
  "moduleResolution": "node",
  "rootDir": "src",
  "forceConsistentCasingInFileNames": true,
  "noImplicitReturns": true,
  "noImplicitThis": true,
  "noImplicitAny": true,
  "strictNullChecks": true,
  "suppressImplicitAnyIndexErrors": true,
  "noUnusedLocals": false

1 Ответ

0 голосов
/ 11 мая 2018

Я должен был перезапустить VS Code. Все тесты, указанные ниже, проходят.

test("can iterate array", () => {
    let total = 0;
    for (let i of [1, 2, 3]) {
        total = total + i;
    }
    expect(total).toBe(6);
});

function* numbers() {
    yield 1;
    yield 2;
    yield 3;
}

test("can iterate custom", () => {
    let total = 0;
    for (let i of numbers()) {
        total = total + i;
    }
    expect(total).toBe(6);
});

test("can iterate custom iterable", () => {
    let x = {
        [Symbol.iterator]: numbers
    };
    let total = 0;
    for (let i of x) {
        total = total + i;
    }
    expect(total).toBe(6);
});

И в package.json ...

"target": "es6", "lib": [ "ES6", «Дом» ]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...