Skip to content

feat: TypeScript 5.4 support for svelte-check#2313

Merged
dummdidumm merged 8 commits into
sveltejs:masterfrom
jasonlyu123:ts-5.4
Mar 19, 2024
Merged

feat: TypeScript 5.4 support for svelte-check#2313
dummdidumm merged 8 commits into
sveltejs:masterfrom
jasonlyu123:ts-5.4

Conversation

@jasonlyu123

@jasonlyu123 jasonlyu123 commented Mar 11, 2024

Copy link
Copy Markdown
Member

Auto import seems to be broken. Need to check what the problem is. We also need to check if the Preserved Narrowing in Closures Following Last Assignments changes the narrowing in any unexpected ways (#2316).

Auto Import in non-ts svelte file has some regression in 5.4. So this only adds the support for svelte-check. Editor support waiting on if the upstream fix is merged. So 5.4 might be skipped.

@jasonlyu123 jasonlyu123 added the Blocked Cannot proceed until something else is resolved label Mar 12, 2024
@jasonlyu123

jasonlyu123 commented Mar 12, 2024

Copy link
Copy Markdown
Member Author

Seems like auto-import is broken in js/non-ts-svelte files importing export default from ts/ts-svelte files. And also declare function like onMount in svelte 3.

@dummdidumm

Copy link
Copy Markdown
Member

Is this reproducible without Svelte? i.e. import a export default of a .ts file inside a .js file doesn't work? If so, we should open a bug report in the TypeScript repo.

@jasonlyu123

Copy link
Copy Markdown
Member Author

Yeah. it also happens in js files. Also found that the problem with onMount in svelte 3 isn't because it has a declare modifier. It's because of the barrel export. Barrel export seems like a way bigger problem than the default export. Upstream issue microsoft/TypeScript#57740

@jasonlyu123

Copy link
Copy Markdown
Member Author

Let's wait until VSCode releases with TypeScript 5.4 to see if enough people complain about it and see if the fix can made into a 5.4 patch release. If not, we can probably either

  1. Adjust the test and add a dedicated test for auto-import reexport/default export. Skipped it and enabled it when the fix was released.
  2. Pin the version in 5.3 but release the fixes with binding control flow and transition type-check.

@dummdidumm

dummdidumm commented Mar 16, 2024

Copy link
Copy Markdown
Member

The bug was put into the backlog, it doesn't look like it has any priority. We may have to dig into the code base ourselves and make a TS pull request. Would you be willing to try that?
In the meantime doing option 2 sounds good (in fact I already pinned it because I had to release a fix)

@jasonlyu123 jasonlyu123 changed the title feat: TypeScript 5.4 support feat: TypeScript 5.4 support for svelte-check Mar 18, 2024
@jasonlyu123 jasonlyu123 marked this pull request as ready for review March 18, 2024 05:04
@jasonlyu123 jasonlyu123 removed the Blocked Cannot proceed until something else is resolved label Mar 18, 2024
Comment thread packages/svelte2tsx/src/htmlxtojsx_v2/nodes/Binding.ts
@dummdidumm dummdidumm merged commit 15a41f3 into sveltejs:master Mar 19, 2024
@jasonlyu123 jasonlyu123 deleted the ts-5.4 branch April 16, 2024 04:48
dummdidumm pushed a commit that referenced this pull request Apr 16, 2024
Follow up to #2313. The auto-import problem is fixed in 5.4.5.
@DePasqualeOrg

Copy link
Copy Markdown

It looks like the TypeScript version in the svelte-check package still needs to be updated. I'm getting errors when running svelte-check that don't appear in VS Code, where I'm running the latest TypeScript.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants