Typescript Loop с задержкой
Я пытаюсь создать метроном с Typescript.
У меня есть этот код JavaScript:
(function theLoop (i) {
setTimeout(function () {
metronome.play();
if (--i) {
theLoop(i);
}
}, 3000); // interval set to 3000
})(10); // play it 10 times
И я хотел преобразовать его в код Typescript. К сожалению, я не знаю, как это сделать (особенно в отношении последней строки => })(10);
Может кто-то помочь мне с этим?
2 ответа
Решение
Как все говорили, typescipt - это расширенный набор javascript, поэтому ваш код является допустимым машинописным шрифтом, но вот как это сделать с помощью функции со стрелкой (которая также es6
javascript) и типы:
(function theLoop (i: number) {
setTimeout(() => {
metronome.play();
if (--i) {
theLoop(i);
}
}, 3000);
})(10);
И вот еще один вариант:
let theLoop: (i: number) => void = (i: number) => {
setTimeout(() => {
metronome.play();
if (--i) {
theLoop(i);
}
}, 3000);
};
theLoop(10);
редактировать
Используя второй вариант, который я вам дал, изменить задержку очень просто:
let theLoop: (i: number, delay?) => void = (i: number, delay = 3000) => {
if (i % 2 === 0) {
delay = 1500;
}
setTimeout(() => {
metronome.play();
if (--i) {
theLoop(i);
}
}, delay);
};
theLoop(10);
Typescript
верхний набор Javascript
, Таким образом, вы можете скопировать свой код в Typescript
и это будет работать