Skip to content

createUnrefFn ​

Category
Export Size
166 B
Last Changed
2 years ago
Related

Make a plain function accepting ref and raw values as arguments. Returns the same value the unconverted function returns, with proper typing.

TIP

Make sure you're using the right tool for the job. Using reactify might be more pertinent in some cases where you want to evaluate the function on each changes of it's arguments.

Usage ​

ts
import { createUnrefFn } from '@vueuse/core'
import { ref } from 'vue'

const url = ref('https://httpbin.org/post')
const data = ref({ foo: 'bar' })

function post(url, data) {
  return fetch(url, { data })
}
const unrefPost = createUnrefFn(post)

post(url, data) /* ❌ Will throw an error because the arguments are refs */
unrefPost(url, data) /* ✔️ Will Work because the arguments will be auto unref */

Type Declarations ​

typescript
export type UnrefFn<T> = T extends (...args: infer A) => infer R
  ? (
      ...args: {
        [K in keyof A]: MaybeRef<A[K]>
      }
    ) => R
  : never
/**
 * Make a plain function accepting ref and raw values as arguments.
 * Returns the same value the unconverted function returns, with proper typing.
 */
export declare function createUnrefFn<T extends Function>(fn: T): UnrefFn<T>

Source ​

Source • Docs

Contributors ​

Anthony Fu
Anthony Fu
Stanley Horwood

Changelog ​

No recent changes

Released under the MIT License.