首页 > 解决方案 > 在 svelte 文件中导出 typescript 类型

问题描述

我想导出我在一个文件中定义的类型并将其导入另一个文件中。

export type myNewType = {name: string};

当我添加时,linter 向我显示以下错误export

Modifiers cannot appear here.

我可以通过创建一个新ts文件并从中导入类型来使其工作。我只想知道是否有办法在svelte文件中定义类型。

更新:

我使用 sapper 模板,它可以正常运行,但TS功能不起作用,并且在vscode从 svelte 文件导入类型和导出类型时显示错误。

标签: typescriptsveltesapper

解决方案


您需要从模块脚本导出类型,而不是普通脚本。您还需要lang="ts"在普通脚本或模块脚本上添加属性。这将起作用:

<script context="module" lang="ts">
  export type myNewType = {name: string};
</script>

<script>
  export let aProp: string;
</script>

<p>some html</p>

一般来说,当你想从另一个不是组件本身的 Svelte 文件中导入某些东西时,你需要在模块脚本中声明该导出。


推荐阅读