SvelteKit cu TypeScript fără IntelliSense în interiorul HTML-ului?


Am un component de pagină simplu, dar funcția de intellisense în interiorul HTML-ului nu funcționează... De asemenea, după redenumirea unei proprietăți, nu o redenumește în interiorul HTML-ului, doar se strică... Versiunea Typescript: 4.8.4. Iată codul meu:

<script lang="ts">
    import type { Blog } from "$lib/store/BlogStore";

    let blog: Blog = {
        id: 0,
        activeFrom: new Date(),
        isPublished: false,
        updatedAt: new Date(),
        content: {
            rows: [],
            notesHolder: []
        },
        previewImageUrl: '',
        tags: [],
        header: '',
        user: '',
        isPremium: false
    };
</script>

<div>
    {#each blog.<no intellisense here? as row}
        <div>
            <h1>{row.id}</h1>
            <p>{row.type}</p>
        </div>
    {/each}
</div>

iată interfața blogului meu:

export interface Blog {
    id: number;
    activeFrom: Date;
    isPublished: boolean;
    updatedAt: Date;
    content: BlogContent;
    previewImageUrl: string;
    tags: string[]; //tag
    header: string;
    user: string; // user
    isPremium: boolean;
}

Răspuns #1

Mi se pare că aceasta este mai degrabă o problemă a IDE-ului tău/extensiilor, decât a svelte/sveltekit în sine.

Nu ai specificat care este IDE-ul tău și ce extensii ai instalate. Dar, în vscode cu extensiile recomandate (svelt pentru vs code), acel exemplu chiar nu funcționează pentru mine, dar se pare că este un bug, pentru că dacă încerci:

{#if blog.tags}
p
{/if}

Completarea automată funcționează, deci intellisense funcționează clar în HTML. Nu am reușit să găsesc acest lucru ca o problemă raportată în repo, dar cred că această întrebare ar putea fi mai bine un issue pe GitHub aici. Așadar, simțiți-vă liber să ridicați problema acolo dacă și voi credeți că este un bug la acea parte.