---
# System prepended metadata

title: 問題二三四-有關vue-router的ts問題（Vue）

---

# 問題二三四-有關vue-router的ts問題（Vue）
###### tags: 問題二三四

對於使用vue ts新手的我，踩雷踩到累呀！
這次是踩到vue router的部分。

### 問題

在一般設置vue router的時候，放置routes這個資料會將所有頁面相關資訊包在裡面，而這個型別叫做**RouteRecordRaw**

```javascript=
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
import Home from "../view/Home.vue";

const routes: Array<RouteRecordRaw> = [
  {
    path: "/",
    name: "Home",
    component: Home,
  },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;
```

假如我們想在每一頁進入的時候做一個console.log的動作，就會增加一個叫做beforeEnter的方法

此時會有機會ts報錯，因為我在另一個專案理會是正常使用
這邊要是有報錯

原本寫法是

```javascript=
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
import Home from "../view/Home.vue";

const routes = [
  {
    path: "/",
    name: "Home",
    component: Home,
    beforeEnter: () => console.log('this is home page'),
  },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
  linkActiveClass: "active",
});


export default router;
```

其實是因為beforeEnter的型別要是call back會是一boolean所以這邊需要讓他是一個void

```javascript=

beforeEnter: () => {console.log('this is home page')}
```


這樣就可以解決這個錯誤了！