# TypeScript-tuki Maguyva-palvelussa: parempi konteksti monorepoille

Canonical source: https://maguyva.ai/fi/languages/typescript

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva tukee TypeScript-kieltä AST-jäsennyksellä ja symbolien poiminnalla, jotta tekoälyagentit voivat jäljittää rajapintoja, toteutuksia, jaettuja paketteja ja JSX-painotteista sovelluskoodia monorepoissa.

## Tukikatsaus

- Taso: AST- ja symbolituki
- Ohjelmointi
- Päätteet: .cts, .d.ts, .mts, .spec.ts, .stories.ts, .test.ts, +1 lisää
- Oikea AST-jäsennys syntaksitietoiseen hakuun ja rakenteelliseen kontekstiin.
- Nimetyt symbolit syöttävät semanttista hakua ja ristiviittauksia. Graafinavigointi on käytettävissä, kun suhteiden poiminta on käytössä.
- Tämä kieli tuo symboleja ja suhteita graafia hyödyntävään hakuun; tuetut reunatyypit vaihtelevat kielen omien rakenteiden mukaan.
- Sekä AST-jäsennys että symbolien poiminta ovat käytettävissä.

## Parhaiten sopii

- Tuote- ja alustatiimit, jotka ajavat Next.js:ää, Node-palveluita, jaettuja paketteja ja työkaluja yhdessä TypeScript-repositoriossa.
- Repositoriot, joissa rajapinnat, DTO:t, skeemat ja React-komponentit liikkuvat yhdessä, mutta sijaitsevat eri hakemistoissa.
- Tiimit, jotka pyrkivät antamaan tekoälyagenteille turvallisen kontekstin ennen jaettuihin tyyppeihin tai pakettirajoihin koskemista.

## Agenttien työnkulut

- Seuraa tyyppiä, rajapintaa tai komponenttia sen määrittelystä koodipolkuihin, jotka todella käyttävät sitä.
- Vertaa toteutuksia eri paketeissa ennen jaetun apuohjelman tai API-sopimuksen muuttamista.
- Kartoita todennäköinen vaikutusalue jaetun tyypin, apuohjelman tai palvelumoduulin muokkaamiselle.

## Miksi TypeScript-sivut merkitsevät

TypeScript on kieli, jossa monet tiimit odottavat tekoälyavusteisen refaktoroinnin vihdoin tuntuvan turvalliselta. Tyyppijärjestelmä auttaa, mutta se ei poista todellista ongelmaa: jaetut paketit, DTO:t, generoidut asiakkaat, React-komponentit, testit ja sovelluskoodi kaikki viittaavat samoihin nimiin suuressa repositoriossa.

TypeScriptille standardi on korkeampi kuin "se ymmärtää syntaksin". Agentin täytyy seurata sopimusta määrittelystä toteutukseen ja vaikutusalueeseen ennen jaetun tyypin, hookin tai asiakkaan muokkaamista.

## Mitä Maguyva todella poimii TypeScriptistä

Maguyva poimii luokat, metodit, rajapinnat ja tyyppialiakset `.ts`:sta, `.mts`:sta, `.cts`:sta ja yleisistä TypeScript-tiedostomuunnelmista testien ja storyjen ympärillä. Jäsenetuliitteet normalisoidaan, mutta luokan nimellä tarkennetut tunnisteet säilytetään, mikä auttaa, kun repositoriossa on sekä paljas apuohjelman nimi että luokkakohtainen metodi, jolla on sama viimeinen segmentti.

JSX käsitellään todellisena rakenteellisena signaalina eikä irrallisena merkkauksena. Indeksoiduissa TypeScript-tiedostoissa testit, storyt ja konfiguraatio ovat edelleen saatavilla sovelluskoodin rinnalla, jolloin agentti voi tarkistaa käyttöesimerkit ja asetukset ennen jaetun komponentin tai palvelun muuttamista.

## Hyödyllisiä MCP-työnkulkuja TypeScript-repositorioille

Kolme lähtökohtaa riittää yleensä:

- Käytä `find_symbol`, kun tiedät jo rajapinnan, tyyppialiaksen, hookin tai palvelun nimen.
- Käytä `dependency_search` ennen jaettujen tyyppien tai asiakkaiden muuttamista, jotka saattavat levitä usean paketin yli.
- Käytä `structural_search`, kun tarvitset koodimuotoa, et avainsanavastaavuutta, esimerkiksi toistuvia komponentti- tai metodimalleja.

Käsitteellisille kysymyksille, kuten "seuraa kassalomakkeen lähetyspolkua", `get_task_context` on usein parempi ensiaskel kuin raaka haku.

## Missä tämä sivu on merkityksellisin

Tämä sivu on hyödyllisin web- ja alustamonorepoissa, joissa TypeScript on useiden pakettien koordinaatiokerros. Jos repositoriossasi on vielä paljon vanhempaa JS:ää, lue [JavaScript-opas](/fi/languages/javascript). Jos kysymyksesi on oikeasti "pystyykö agentti pitämään sovelluskoodin ja infrakontekstin yhdessä?", yhdistä tämä [Terraformiin](/fi/languages/terraform).

## Moottorin yksityiskohdat

- TypeScript poimii luokat, metodit, rajapinnat ja tyyppialiakset sen sijaan, että litistäisi kaiken yleisiksi symboleiksi.
- Jäsenetuliitteet poistetaan, mutta luokkakohtaiset tunnisteet säilytetään, mikä auttaa erottamaan `CheckoutService.create`-kutsun paljaasta `create`-kutsusta.
- JSX-elementit lasketaan olioiden luonniksi. Indeksoiduissa TypeScript-tiedostoissa testit, storyt ja konfiguraatio ovat edelleen saatavilla kontekstina sovelluskoodin rinnalla.

## Hyödylliset MCP-liittymäkohdat

- `find_symbol`: Aloita tästä, kun tiedät jaetun rajapinnan, tyyppialiaksen, hookin tai palvelun, jota haluat tarkastella.
- `dependency_search`: Käytä sitä ennen jaetun DTO:n tai clientin muuttamista saadaksesi realistisen vaikutusalueen pakettien yli.
- `structural_search`: Käytä AST-tason hakua, kun tarvitset kuviota etkä merkkijonovastaavuutta, esimerkiksi toistuvia komponentti- tai metodimuotoja.
