diff --git a/packages/shared/useInterval/index.ts b/packages/shared/useInterval/index.ts index 0382d201e6ed..a508101b1c46 100644 --- a/packages/shared/useInterval/index.ts +++ b/packages/shared/useInterval/index.ts @@ -1,6 +1,6 @@ import type { Ref } from 'vue-demi' import { ref } from 'vue-demi' -import type { Pausable } from '../utils' +import type { MaybeRef, Pausable } from '../utils' import { useIntervalFn } from '../useIntervalFn' export interface IntervalOptions { @@ -19,9 +19,9 @@ export interface IntervalOptions { immediate?: boolean } -export function useInterval(interval?: number, options?: IntervalOptions): Ref -export function useInterval(interval: number, options: IntervalOptions): { counter: Ref } & Pausable -export function useInterval(interval = 1000, options: IntervalOptions = {}) { +export function useInterval(interval?: MaybeRef, options?: IntervalOptions): Ref +export function useInterval(interval: MaybeRef, options: IntervalOptions): { counter: Ref } & Pausable +export function useInterval(interval: MaybeRef = 1000, options: IntervalOptions = {}) { const { controls: exposeControls = false, immediate = true, diff --git a/packages/shared/useIntervalFn/demo.vue b/packages/shared/useIntervalFn/demo.vue index a17813412f02..c3795fb18776 100644 --- a/packages/shared/useIntervalFn/demo.vue +++ b/packages/shared/useIntervalFn/demo.vue @@ -4,14 +4,19 @@ import { useIntervalFn } from '.' const greetings = ['Hello', 'Hi', 'Yo!', 'Hey', 'Hola', 'こんにちは', 'Bonjour', 'Salut!', '你好'] const word = ref('Hello') +const interval = ref(500) const { pause, resume, isActive } = useIntervalFn(() => { word.value = greetings[Math.round(Math.random() * (greetings.length - 1))] -}, 500) +}, interval)