main.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. /**
  2. * Some predefined delay values (in milliseconds).
  3. */
  4. export enum Delays {
  5. Short = 500,
  6. Medium = 2000,
  7. Long = 5000,
  8. }
  9. /**
  10. * Returns a Promise<string> that resolves after a given time.
  11. *
  12. * @param {string} name - A name.
  13. * @param {number=} [delay=Delays.Medium] - A number of milliseconds to delay resolution of the Promise.
  14. * @returns {Promise<string>}
  15. */
  16. function delayedHello(name: string, delay: number = Delays.Medium): Promise<string> {
  17. return new Promise((resolve: (value?: string) => void) => setTimeout(() => resolve(`Hello, ${name}`), delay))
  18. }
  19. // Please see the comment in the .eslintrc.json file about the suppressed rule!
  20. // Below is an example of how to use ESLint errors suppression. You can read more
  21. // at https://eslint.org/docs/latest/user-guide/configuring/rules#disabling-rules
  22. // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
  23. export async function greeter(name: any) {
  24. // eslint-disable-line @typescript-eslint/no-explicit-any
  25. // The name parameter should be of type string. Any is used only to trigger the rule.
  26. return await delayedHello(name, Delays.Medium)
  27. }
  28. await greeter('world').then(console.log)