# vuepress-plugin-typescript

# 安装

npm install -D vuepress-plugin-typescript typescript

# 使用

// .vuepress/config.js
module.exports = {
  plugins: [
    [
      'vuepress-plugin-typescript',
      {
        tsLoaderOptions: {
          // ts-loader 的所有配置项
        },
      },
    ],
  ],
}

# 配置项

# tsLoaderOptions

  • 类型: Object
  • 默认值: {}

ts-loader 的 Loader Options。参考 ts-loader 文档

# 支持的特性

# 在 Markdown 中使用 TS

我们知道, VuePress 允许我们 在 Markdown 中使用 Vue

这个插件可以允许你在 Markdown 中通过 TypeScript 使用 Vue 。

输入

{{ msg }}
<script lang="ts">
import Vue from 'vue'
export default Vue.extend({
  data: () => ({
    msg: 'Hello, TypeScript in Markdown!',
  }),
})
</script>

输出

Hello, TypeScript in Markdown!

# 在 Vue SFC 中使用 TS

这个插件允许你使用 TypeScript 来写 .vue 文件,包括:

参考当前文档的 源代码

# enhanceApp.ts

VuePress 支持 应用级别的配置,即 .vuepress/enhanceApp.js / theme/enhanceApp.js.

这个插件允许你使用 enhanceApp.ts 来代替 enhanceApp.js

参考这个插件的 测试用例

注意

如果你想在 enhanceApp.ts 或其他 .ts 文件中引入 .vue 文件,记得创建 .vuepress/shims-vue.d.ts:

// .vuepress/shims-vue.d.ts
declare module '*.vue' {
  import Vue from 'vue'
  export default Vue
}

# 类型定义

你可能会遇到 VuePress 的类型检查问题,比如无法找到 this.$themeConfig 的类型定义。

如果你想获取到正确的类型定义,你可以尝试使用 vuepress-types