From cf57050f4919bb3ae5cb3b5801a5919f1672b2ab Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Fri, 7 Aug 2020 04:16:10 -0700 Subject: [PATCH] Mention "import type" in TypeScript FAQ (#5243) * Mention "import type" in TypeScript FAQ * Update site/content/faq/500-what-about-typescript-support.md Co-authored-by: Christian Kaisermann --- site/content/faq/500-what-about-typescript-support.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/site/content/faq/500-what-about-typescript-support.md b/site/content/faq/500-what-about-typescript-support.md index adfd63764e..98838bab3d 100644 --- a/site/content/faq/500-what-about-typescript-support.md +++ b/site/content/faq/500-what-about-typescript-support.md @@ -10,3 +10,11 @@ To declare the type of a reactive variable in a Svelte template, you should use let x: number; $: x = count + 1; ``` + +To import a type or interface make sure to use [TypeScript's `type` modifier](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export): + +``` +import type { SomeInterface } from './SomeFile'; +``` + +You must use the `type` modifier because `svelte-preprocess` doesn't know whether an import is a type or a value — it only transpiles one file at a time without knowledge of the other files and therefore can't safely erase imports which only contain types without this modifier present.