You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SvelteKit库dist/index.d.ts未导出自定义类型的解决方法问询

问题解答

你的预期没错,自定义类型SettingsWritable确实应该被导出到dist/index.d.ts中,供库使用者调用。以下是具体解决方法:

1. 在入口文件中显式导出类型

找到对应dist/index.js的源入口文件(通常是src/index.js或src/index.ts),添加类型导出语句:

  • 如果是TS入口文件(src/index.ts),直接修改为:
export { default as Settings } from './components/Settings.svelte';
// 显式导出自定义类型
export type { SettingsWritable } from './types/index';
  • 如果是JS入口文件(src/index.js),可结合JSDoc导出类型:
export { default as Settings } from './components/Settings.svelte';
/**
 * @typedef {import('./types/index').SettingsWritable} SettingsWritable
 */
export type { SettingsWritable } from './types/index';

2. 调整tsconfig配置,确保类型文件被编译处理

修改tsconfig.json的include数组,添加对src/types下.d.ts文件的引用:

"include": [
    "ambient.d.ts",
    "./types/**/$types.d.ts",
    "../vite.config.ts",
    "../src/**/*.js",
    "../src/**/*.ts",
    "../src/**/*.svelte",
    "../src/types/**/*.d.ts", // 新增此行,确保类型定义文件被纳入编译
    "../tests/**/*.js",
    "../tests/**/*.ts",
    "../tests/**/*.svelte"
],

3. 重新构建项目

执行项目构建命令,重新生成dist目录。此时dist/index.d.ts会同时包含组件和SettingsWritable类型的导出声明。

原理说明

TypeScript生成声明文件时,仅会包含入口文件中显式导出的内容。之前你的入口文件只导出了组件,因此生成的dist/index.d.ts不会自动包含未导出的SettingsWritable类型。通过在入口文件中显式导出类型,TypeScript会将其纳入最终生成的声明文件。

内容的提问来源于stack exchange,提问作者lve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:23:15