菜单

TypeScript 集成

相关源文件

本页面介绍了 Svelte 如何与 TypeScript 集成,涵盖了类型定义、组件类型接口以及 TypeScript 在编译过程中如何处理。有关错误和警告系统的更多信息,请参阅 错误和警告系统

概述

Svelte 通过全面的类型定义提供一流的 TypeScript 支持,使开发人员能够创建类型安全的组件。Svelte 中的 TypeScript 集成涵盖了几个关键领域:

  1. Svelte API 的类型定义
  2. 组件的 props、事件和插槽类型接口
  3. 编译过程中的 TypeScript 处理
  4. Svelte 组件中对 TypeScript 的支持
  5. Runes 模式下对 TypeScript 的支持

类型定义架构

Svelte 的 TypeScript 定义结构上支持 Svelte 4 的类式组件和 Svelte 5 的函数式组件。

来源:packages/svelte/types/index.d.ts1-523 packages/svelte/src/index.d.ts1-356 packages/svelte/elements.d.ts1-35 packages/svelte/src/ambient.d.ts1-10

组件类型接口

Svelte 提供了几个用于类型化组件的接口。其中最重要的两个是:

  1. Component<Props, Exports, Bindings> - 用于 Svelte 5 组件(函数式)
  2. SvelteComponent<Props, Events, Slots> - 用于 Svelte 4 组件(类式,已弃用)

组件接口

Component 接口是类型化 Svelte 5 组件的主要方式。

使用示例

实用类型

Svelte 提供了实用类型来从组件中提取信息:

  1. ComponentProps<Component> - 从组件中提取 props 类型
  2. Snippet<Parameters> - 用于 Svelte 的 snippet 功能的类型

来源:packages/svelte/types/index.d.ts138-172 packages/svelte/types/index.d.ts231-239 packages/svelte/types/index.d.ts272-296

Svelte 组件中的 TypeScript

在组件文件中使用 TypeScript

当 `