我如何决定使用 Typescript 文件还是 Svelte 文件?

How do I decide between using a Typescript file and a Svelte file?

我的朋友使用 Typescript 和 Svelte 制作网络应用程序。我问他如何选择什么时候应该是 Typescript 文件,什么时候应该是 Svelte 文件;他说,“在一个精巧的文件中,它是每个组件实例的代码”,而 Typescript 是“一个常规文件......全局的,每个应用程序一个。”

这在逻辑上对我来说很有意义,但我仍然无法理解什么时候应该使用哪个。是否可以使用以下方法制作完全相同的网络应用程序:

  1. 仅 Typescript 文件,
  2. 仅 Svelte 文件,并且
  3. 两者兼而有之?

如果是,那为什么选项 3 更好?如果不是,哪些选项是可能的,哪些选项不是,为什么?更确切地说,Typescript 文件能做什么(如果有的话)Svelte 文件不能,反之亦然?

Svelte 文件可以对 Svelte 组件使用特殊语法。每个 svelte 文件首先被编译成 typescript 文件。

打字稿文件是带有打字稿代码的普通文件。

因此,您需要将组件放入 svelte 文件,将其余代码放入 typescript 文件。您不能在 ts 文件中使用 svelte 语法。而且你在通常的 ts 文件中不需要它。

通常,您会为 组件 使用 Svelte 文件,即任何可以在屏幕上显示按钮、链接、容器等内容的文件... Svelte 文件通常包含三部分(但并非全部都是必需的)。

  • 标记,渲染到屏幕上的东西
  • 样式,css 使标记看起来漂亮
  • 与此标记一起使用的脚本、一些变量、事件处理程序等

在您的 JavaScript (TypeScript) 文件中,您的代码与用户界面没有直接关系。您通常会在这里找到实用函数、商店、api、...

通常 Svelte 组件会导入您的一些 JavasSript 文件并使用其中定义的函数,这可能是因为此函数用在不同的地方(例如格式化日期的函数)或仅仅是因为它很长且复杂的功能,您希望 Svelte 文件简短明了。

换句话说,如果您选择使用 Svelte 制作应用程序(还有其他选项),您将混合使用 Svelte 和 JavaScript 文件,它们有两种不同的用途。