Ошибка компиляции TypeScript с aws-sdk [duplicate]

Еще один способ, который еще не упоминался, - использование Function.prototype.bind

var funcs = {};
for (var i = 0; i < 3; i++) {
  funcs[i] = function(x) {
    console.log('My value: ' + x);
  }.bind(this, i);
}
for (var j = 0; j < 3; j++) {
  funcs[j]();
}

UPDATE

Как указано @squint и @mekdev, вы получаете лучшую производительность, сначала создавая функцию за пределами цикла, а затем привязывая результаты в цикле.

function log(x) {
  console.log('My value: ' + x);
}

var funcs = [];

for (var i = 0; i < 3; i++) {
  funcs[i] = log.bind(this, i);
}

for (var j = 0; j < 3; j++) {
  funcs[j]();
}

7
задан Alex Kibler 18 May 2016 в 20:28
поделиться

1 ответ

Я не знаю, нашли ли вы ответ на этот Алекс, но упомянутый вопрос / ответ в комментариях LDL дает ответ, представленный Шрикантом Инджарапу.

Вот ответ, на тот случай, если кто-то не захочет перейти к этой ссылке:

Если вы настроите таргетинг на ES5, добавьте «node_modules / typescript / lib / lib .es6.d.ts "в файл tsconfig.json:

 {    
   "compilerOptions": {
     "module": "commonjs",
     "target": "es5",
     "noImplicitAny": false,
     "outDir": "built",
     "rootDir": ".",
     "sourceMap": false
   },
   "files": [
     "helloworld.ts",
     "node_modules/typescript/lib/lib.es6.d.ts"
   ],
   "exclude": [
     "node_modules"
   ]
 }

EDIT

В моем приложении я использую webpack для создания своего приложения, и я все еще получить те же ошибки, которые выплевываются на консоли. Я в настоящее время ищу, чтобы исправить это и отчитаюсь с тем, что я нахожу.

6
ответ дан Community 5 September 2018 в 09:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: