老师你好,ref可以接受泛型,但是使用reactive的时候如何使用泛型去改造呢
来源:3-14 模块化结合typescript - 泛型改造
宝慕林n号机
2020-11-05
以下是我的代码,比较迷茫的是传入的T不知道该放在哪
import { reactive, toRefs } from 'vue'
import axios from 'axios'
function useUrlLoader<T>(url: string) {
const result = null
const loading = true
const loaded = false
const error = null
const data = reactive({
result,
loading,
loaded,
error
})
axios.get(url).then((rawData) => {
data.loading = false
data.loaded = true
data.result = rawData.data
}).catch((e) => {
data.error = e
data.loading = false
})
const refData = toRefs(data)
return {
...refData
}
}
export default useUrlLoader
写回答
1回答
-
同学你好 reactive 本身是可以传入泛型的 你应该在那里传入,或者可以直接指定data 的类型 举个例子
interface DataProps<P> { result: P | null; loading: boolean; ... } const data: DataProps<T> = reactive({ result: null, loading: false }) const data = reactive<DataProps<T>>({ result: null, loading: false })
212020-11-11