microsoft / microsoft/TypeScript

Form controller bricks intellsense for rest of session

Offen
#62,192 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Domain: Performance Needs More Info
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

Type: Bug

I have a scenario which is causing Intellisense to break (stuck on "Loading IntelliSense status" indefinitely), meaning I cannot continue development.

My situation:

I am creating a react project using react-hook-form to create a form for a complicated object, hence I am using [useFormContext](https://www.react-hook-form.com/api/useformcontext/) to allow me to nest react function components. My code is as follows:

```
import { Controller, useFormContext } from "react-hook-form";
import { LargeInterface } from "./somewhere";

interface smallDataStructure {
name: string
}

const ChannelForm: React.FC = () => {
const formControls = useFormContext(); // <--- this does not break vscode
// const formControls = useFormContext(); <-- this breaks vscode

return (

)
}
```
I have narrowed the problem down to giving the `useFormContext` a generic parameter (which is used to give a type to the field values) which is a very large interface made up of multiple layers of inheritence (I can provide further information on this when necessary). When I use a small interface as depicted above, there is no problem. When I change the code to use the data scructure I need, the line `` can no longer be written without VS bricking for the rest of the session, only fixing when I restart the application (this specifically happens when I write the "control={formControls.control}").

The technologies I am using:
- React.js with Vite
- typescript
- react-hook-form

The typescript engine appears to be unable to handle whatever problem is occurring here. The datastructure I am trying to use as a generic is complex and made up of multiple layers of inheritance, it includes mostly simple datatypes, but also an array of a user defined class objects. This is what is causing the problem! My "LargeInterface" interface looks as follows:

```
interface LargeInterface inherits MoreSimpleDatatypes {
objs: LargeObject[],
// ... other simple datatypes
}
```

where `LargeObject` is, as the name would suggest, a deeply inherited class. I've tried reproducing this with a simple class, but to no avail. There is something about my `LargeObject` in particular which it does not like. It is probably the case that I am not meant to be using a class as the FieldValues type, but nevertheless, vscode cannot provide the suitable error message in this scenario.

What I've tried:

- Change VS code version, use insiders
- COMPLETELY uninstall all VS code versions from my PC
- Deactivate all plugins
- Change ts version
- Recreate file
- Cleared any cache I could find
- Reclone repo
- Deactivate copilot

Help would be greatly appreciated as I cannot develop on VS code with this problem.

VS Code version: Code - Insiders 1.103.0-insider (994be4137aaf18f2703037311dd1c56a8446ef8b, 2025-08-01T20:53:15.562Z)
OS version: Windows_NT x64 10.0.19045
Modes:

System Info

|Item|Value|
|---|---|
|CPUs|AMD Ryzen 5 3600 6-Core Processor (12 x 3600)|
|GPU Status|2d_canvas: enabled
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
trees_in_viz: disabled_off
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off|
|Load (avg)|undefined|
|Memory (System)|15.93GB (4.73GB free)|
|Process Argv|--crash-reporter-id cc3d998a-aad8-47bd-8ea7-f068b3586619|
|Screen Reader|no|
|VM|0%|
Extensions (5)

Extension|Author (truncated)|Version
---|---|---
vscode-containers|ms-|2.1.0
remote-containers|ms-|0.424.0
remote-wsl|ms-|0.99.0
code-spell-checker|str|4.2.3
vscode-icons|vsc|12.14.0

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit dem gemeldeten React/TypeScript-Beispiel in VS Code Insiders und vergleiche das kleine Generic mit LargeInterface und dessen tief geerbtem LargeObject-Array. Reduziere den Typ, bis der IntelliSense-Hänger weiterhin reproduziert wird, und überprüfe dann, dass der reduzierte Fall IntelliSense nicht mehr bei „Loading IntelliSense status“ hängen lässt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
react, typescript, vite
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.