在书写配置文件的时候通常都是十分复杂的,需要一边查文档,一边进行书写。有时你会希望能够使用 TS 的类型检查来助力。直接将 xxx.config.js 文件改为 xxx.config.ts 通常不是一个好的选择,你需要用代码转换工具将其转为对应的 js 文件。幸运的是,TS 也支持在 JS 中使用 JSDoc 来进行类型检查。例如:

    1. // webpack.config.js
    2. // @ts-check
    3. /**
    4. * @type {import('webpack').Configuration}
    5. */
    6. const config = {
    7. /*...*/
    8. }
    9. module.exports = config

    这样的话,在你书写过程中就会出现自动的代码提示。
    还有更为便捷的方式,在 vite 中,你可以这样做:

    1. // vite.config.js
    2. import { defineConfig } from 'vite'
    3. export default defineConfig({
    4. /*...*/
    5. })

    类似的做法还有在 vue3 中,我们可以使用 defineComponet 来得到 TS 的类型提示。
    defineConfig 存在于运行时中,所以即使在 JS 文件中类型遭到了缩减也可以正常使用。