컴포저블과 Ref의 타입 지정
Ref , ComputedRef , 컴포저블의 타입 지정 반환값과 MaybeRef 를 익힙니다.
컴포저블과 Ref의 타입 지정은(는) CoddyKit의 무료 Vue Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Vue Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Vue Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
컴포지션 API에 타입 지정하기
컴포저블은 단순한 함수이고 ref는 타입이 지정된 컨테이너일 뿐입니다. 명시적인 타입을 추가하면 컴포저블을 안전하게 사용할 수 있고 호출자에게 완전한 자동 완성을 제공합니다.
ref 타입 추론
대부분의 경우 TypeScript는 초기값에서 ref 타입을 추론합니다. ref(0)은 자동으로 Ref<number>가 됩니다.
import { ref } from 'vue'
const count = ref(0) // Ref<number>
const name = ref('Coddy') // Ref<string>명시적 ref 제네릭
초기값만으로 전체 타입을 표현할 수 없을 때는 명시적인 제네릭을 전달하십시오. 예를 들어 값이 null로 시작하지만 나중에 객체가 되는 경우입니다.
interface User { id: number; name: string }
const user = ref<User | null>(null)Ref 타입
Ref<T>는 .value의 타입이 T인 쓰기 가능한 ref를 나타냅니다. ref를 받는 변수나 함수 매개변수에 타입을 지정할 때 사용하십시오.
import type { Ref } from 'vue'
function useDouble(n: Ref<number>) {
return computed(() => n.value * 2)
}ComputedRef 타입
computed는 읽기 전용 ComputedRef<T>를 반환합니다. 계산된 값을 반환하는 컴포저블에 타입을 지정할 때 이 타입을 사용하십시오.
import type { ComputedRef } from 'vue'
const doubled: ComputedRef<number> = computed(() => count.value * 2)컴포저블 반환값에 타입 지정하기
반환 형태에 타입을 지정하면 사용하는 쪽에서 정확히 무엇을 받는지 알 수 있습니다. 명시적인 반환 타입은 컴포저블의 문서 역할도 합니다.
import { ref, type Ref } from 'vue'
function useCounter(): { count: Ref<number>; increment: () => void } {
const count = ref(0)
const increment = () => count.value++
return { count, increment }
}타입 추론에 맡기기
대개는 명시적인 반환 타입을 생략하고 TypeScript가 추론하도록 할 수 있습니다. 안정적인 공개 계약을 원할 때만 명시적인 타입을 추가하십시오.
유연한 입력을 위한 MaybeRef
MaybeRef<T>는 일반 T 값일 수도 있고 Ref<T>일 수도 있는 값을 의미합니다. 컴포저블이 두 형식 중 하나를 받을 수 있게 합니다.
import type { MaybeRef } from 'vue'
function useGreeting(name: MaybeRef<string>) {
// name could be 'Coddy' or ref('Coddy')
}unref로 래퍼 해제하기
unref(x)는 x가 ref이면 x.value를 반환하고, 그렇지 않으면 x 자체를 반환합니다. MaybeRef와 함께 사용하면 입력을 하나의 형식으로 정규화할 수 있습니다.
import { unref, type MaybeRef } from 'vue'
function useGreeting(name: MaybeRef<string>) {
const text = unref(name) // always a string
return 'Hello ' + text
}toValue: 최신 도우미
Vue 3.3에서 추가된 toValue는 ref를 래퍼 해제할 뿐 아니라 getter 함수도 호출합니다. MaybeRefOrGetter 입력을 정규화할 때 권장되는 방법입니다.
import { toValue, type MaybeRefOrGetter } from 'vue'
function useLen(input: MaybeRefOrGetter<string>) {
return computed(() => toValue(input).length)
}반응형 객체에 타입 지정하기
reactive는 객체 타입을 직접 추론하므로 .value가 필요하지 않습니다. 명시적으로 타입을 지정하려면 객체 인터페이스를 사용해 변수에 타입을 지정하십시오.
import { reactive } from 'vue'
interface State { count: number; name: string }
const state: State = reactive({ count: 0, name: '' })빠른 확인
컴포저블과 ref에 타입을 지정하는 방법을 테스트해 보십시오.
복습
컴포지션 API에 타입을 지정하는 방법을 배웠습니다.
- ref는 타입을 추론합니다. 초기값이 충분하지 않을 때는 ref<T>()를 사용합니다.
- Ref<T>와 ComputedRef<T>로 ref와 computed에 타입을 지정합니다.
- 명확한 계약을 위해 컴포저블의 반환값에 타입을 지정합니다.
- MaybeRef<T> + unref()/toValue()로 유연한 입력을 받습니다.
자주 묻는 질문
“컴포저블과 Ref의 타입 지정” 강의는 무료인가요?
네 — “컴포저블과 Ref의 타입 지정” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Vue Academy 강의 전체를 잠금 해제할 수 있습니다. Vue Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“컴포저블과 Ref의 타입 지정”에서 뭘 배우나요?
Ref , ComputedRef , 컴포저블의 타입 지정 반환값과 MaybeRef 를 익힙니다. 브라우저에서 직접 실행하는 실습 코드로 Vue Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Vue Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Vue Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“컴포저블과 Ref의 타입 지정” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Vue Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Vue Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.