在svelte文件中导出打字稿类型

时间:2020-09-25 12:48:22

标签: typescript svelte sapper

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

export type myNewType = {name: string};

当我添加export时,linter向我显示下面的错误:

Modifiers cannot appear here.

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

更新

我使用了sapper模板,它将运行而不会出错,但是TS功能无法正常工作,并且从svelte文件导入类型和导出类型时,在vscode中显示错误。

1 个答案:

答案 0 :(得分:3)

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

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

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

<p>some html</p>

通常,每当您要从另一个Svelte文件(而不是组件本身)导入某些内容时,都需要在模块脚本中声明该导出。