近期在學習typeScript時遇到點小問題,
再封裝fetch Api時,但是帶入參數時卻會噴出Error:
類型 '{ Cate: string; Sp: number; }' 的引數不可指派給類型 'string' 的參數。
或
找不到名稱Cate和Sp
不曉得該如何做調整,求各位前輩指導
// Api/tags.ts
export const getTag = async (Cate?: string, Sp?: number) => {
console.log(Cate, Sp)
await useHttp.get('/app/v1/article/hotView', {
params: {
Cate,
Sp
}
})
}
// index.vue
<script lang="ts" setup>
//Error:類型 '{ Cate: string; Sp: number; }' 的引數不可指派給類型 'string' 的參數。
const tags = await TagApi.getTag({
Cate: "台積電",
Sp: 15,
})
//Error:找不到名稱Cate和Sp
const tags2 = await TagApi.getTag(Cate:"台積電", Sp:15)
</script>
更
圖一
圖二
這有兩個方向可以改。
一、因為你宣告的函式需要兩個參數,所以可以在呼叫函式時,改成傳入兩個參數。
const tags2 = await TagApi.getTag("台積電", 15);
二、你可以改函式的宣告,把參數改成一個物件
export const getTag = async (options: {Cate?: string, Sp?: number}) => {
await useHttp.get('/app/v1/article/hotView', {
params: options
})
}
const tags2 = await TagApi.getTag({Cate:"台積電", Sp:15});
下面那段改成
const tags = await TagApi.getTag("台積電", 15)
你的 getTag
接受兩個參數 Cate
和 Sp
export const getTag = async (Cate?: string, Sp?: number) => {
...
}
但是下面你卻給 getTag
一個物件 { Cate: "台積電", Sp: 15 }
const tags = await TagApi.getTag({
Cate: "台積電",
Sp: 15,
})