Typescript support has undoubtedly been the most coveted and in-demand feature for a long time and here it is: Svelte officially supports TypeScript!
We believe this will give you a much more enjoyable development experience. Which scales perfectly in large applications, whether you are using TypeScript or JavaScript.
Try it now
Svelte + Typescript , - node scripts/setupTypeScript.js
.
npx degit sveltejs/template svelte-typescript-app
cd svelte-typescript-app
node scripts/setupTypeScript.js
VS Code, , James Birtles. , TypeScript Svelte.
TypeScript Svelte?
, Typescript Svelte . , . Svelte , .
COVID , Svelte dev- , TypeScript. , .
, , Svelte TypeScript, :
TypeScript
<script>
-lang="ts"
.TypeScript
svelte-check
., , !
TypeScript API Svelte -
.svelte
.ts
.
?
TypeScript, , TypeScript . tsc
, *.ts
*.js
. , TSServer
, . TSServer
- , JavaScript TypeScript .
Svelte Svelte compiler
svelte-language-server, Language Server Protocol. TypeScript , TypeScript.
Svelte TypeScript svelte-preprocess, Christian Kaisermann, Svelte.
, Pine Vue Vetur. Vetur LSP, VS Code CLI. Svelte LSP, VS Code CLI.
*.svelte
VS Code UnwrittenFun/svelte-vscode UnwrittenFun/svelte-language-server, James Birtles.
Simon Holthausen Lyu, Wei-Da JavaScript and TypeScript, svelte2tsx @halfnelson, .
TypeScript
:
npm install --save-dev @tsconfig/svelte typescript svelte-preprocess svelte-check
1. TypeScript
svelte-preprocess
, <script lang="ts">
TypeScript.
Rollup, :
+ import autoPreprocess from 'svelte-preprocess';
+ import typescript from '@rollup/plugin-typescript';
export default {
...,
plugins: [
svelte({
+ preprocess: autoPreprocess()
}),
+ typescript({ sourceMap: !production })
]
}
, @rollup/plugin-typescript
, Rollup .ts
. .
TypeScript, tsconfig.json
:
{
"extends": "@tsconfig/svelte/tsconfig.json",
"include": ["src/**/*", "src/node_modules"],
"exclude": ["node_modules/*", "__sapper__/*", "public/*"],
}
include/exclude
, - Svelte.
2.
, LSP, . VS Code , Atom Vim coc-svelte.
JavaScript. , . //@ ts-check
<script>
JavaScript, .
<script>
TypeScript, lang="ts"
. , ! ;-)
3.CI
- , . CLI svelte-check
. , , .svelte
.
, CI.
❯ npx svelte-check
Loading svelte-check in workspace: /Users/ortatherox/dev/svelte/example-app
Getting Svelte diagnostics...
====================================
/Users/ortatherox/dev/svelte/example-app/src/App.svelte:3:2
Error: Type '123' is not assignable to type 'string'. (ts)
====================================
svelte-check found 1 error
error Command failed with exit code 1.
TypeScript Sapper?
TypeScript Sapper 0.28 . , upgrade.
?
, . sveltejs/language-tools, #language-tools Discord. , , . !
***
If you are one of those for whom TypeScript support was a blocking factor to start working with Svelte (I know there are such people), then your time has come! Join the Russian-speaking Svelte community on Telegram - @sveltejs . The community is gaining momentum - we are already over 1.7K people! There you can find help or advice on almost any issue, as well as discuss the most pressing topics. If you don't have time for chats, subscribe to the @sveltejs_public channel for news and useful materials on Svelte. Good luck and good luck!