Вам нужно дождаться TypeScript 2.0 с async/ awaitдля поддержки ES5, поскольку теперь он поддерживается только для компиляции TS в ES6.
Вы можете создать функцию задержки с помощью async:
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
И назови это
await delay(300);
Обратите внимание, что вы можете использовать awaitтолько внутреннюю asyncфункцию.
Если вы не можете ( скажем, вы создаете приложение nodejs ), просто поместите свой код в анонимную asyncфункцию. Вот пример:
(async () => {
// Do something before delay
console.log('before delay')
await delay(1000);
// Do something after
console.log('after delay')
})();
Пример приложения TS: https://github.com/v-andrew/ts-template
В OLD JS вы должны использовать
setTimeout(YourFunctionName, Milliseconds);
или
setTimeout( () => { /*Your Code*/ }, Milliseconds );
Однако с каждым из основных браузеров поддержки async/ awaitона устарела.
Обновление: TypeScript 2.1 здесь с async/await.
Только не забывайте, что вам нужна Promiseреализация при компиляции в ES5, где Promise изначально недоступен.