본문 바로가기

개발하자

svelte 유형 스크립트의 svelte 사용자 지정 이벤트

반응형

svelte 유형 스크립트의 svelte 사용자 지정 이벤트

나는 클릭을 사용하고 있다svelt형 스크립트 프로젝트에 대한 외부 지시이며 관련 요소에 사용자 지정 이벤트를 할당할 때 이 오류가 발생합니다

Type '{ class: string; onclick_outside: () => boolean; }' is not assignable to type 'HTMLProps<HTMLDivElement>'.
  Property 'onclick_outside' does not exist on type 'HTMLProps<HTMLDivElement>'

여기 내 코드의 일부가 있다

{#if profileToolbar}
<div
    transition:fly={{ y: -20, duration: 300 }}
    use:clickOutside={profileToolbarContainer}
    on:click_outside={() => (profileToolbar = !profileToolbar)}
    class="origin-top-right absolute right-0 mt-2 w-48 rounded-md
    shadow-lg z-10 shadow-md">

이것이 클릭입니다내가 현재 사용하고 있는 외부 지시문

나는 타자 원고를 처음이라 구글 검색을 어디서부터 시작해야 할지 잘 모르는데, 이 문제를 해결하는 방법을 아는 사람이 있나요? 도와주셔서 고마워요.




에 따르면 프로젝트에 파일을 생성할 수 있습니다. 그리고 그 파일 안에 다음을 넣으십시오:

declare namespace svelte.JSX {
  interface HTMLAttributes<T> {
    onclick_outside: () => void
  }
}

자세한 내용은 문서를 참조하십시오.




이 선언은 나에게 효과가 있었다

declare namespace svelte.JSX {
  interface DOMAttributes<T> {
    onclick_outside?: CompositionEventHandler<T>;
  }
}

에서 사용자 지정 유형 선언의 위치를 지정하는 것을 잊지 마십시오




그래, 그래서 기존의 답들은 나에게 부분적으로만 효과가 있었다. 이 작업을 통해 i는 다음 솔루션에 도달합니다라는 사용자 지정 이벤트가 발생합니다:

declare namespace svelte.JSX {
    interface HTMLProps<T> {
        onclick_outside?: (e: CustomEvent) => void;
    }
}



나에게는 다음과 같은 효과가 있었다:

declare namespace svelteHTML {
    interface HTMLAttributes<T> {
        "on:click_outside"?: CompositionEventHandler<T>;
    }
}

네 안에.

에 기반을 둔




여기 제 파일이 있습니다.

// See https://kit.svelte.dev/docs/types#app
// for information about these interfaces
declare global {
    namespace App {
        // interface Error {}
        // interface Locals {}
        // interface PageData {}
        // interface Platform {}
    }

    namespace svelte.JSX {
        interface HTMLAttributes {
            onclick_outside: () => void
        }
    }
}

export { };

j


반응형