programing

바인딩 요소 'index'에 암시적으로 '임의' 유형이 있음

jooyons 2023. 8. 23. 21:45
반응형

바인딩 요소 'index'에 암시적으로 '임의' 유형이 있음

angular2-mdl의 데모 프로젝트를 가이드로 사용하여 탭 구성 요소를 가져와서 다음과 같이 구현하려고 했습니다.

import { Component } from '@angular/core';

@Component({
    selector: 'my-dashboard',
    templateUrl: './landing.my.html'
})
export class MyDashboard {
    public activeIndex = 0;

    public tabChanged({index}): void {
        this.activeIndex = index;
    }

}

템플릿은 다음과 같습니다.

<mdl-tabs mdl-ripple mdl-tab-active-index="0" (mdl-tab-active-changed)="tabChanged($event)">
    <mdl-tab-panel mdl-tab-panel-title="home">
        <mdl-tab-panel-title>
            <mdl-icon class="mdl-color-text--primary">home</mdl-icon><span>Home</span>
        </mdl-tab-panel-title>
        <mdl-tab-panel-content>
            <ul>
                <li>Stanis</li>
                <li>Joffrey</li>
            </ul>
        </mdl-tab-panel-content>
    </mdl-tab-panel>
    <mdl-tab-panel mdl-tab-panel-title="something">
        <mdl-tab-panel-title>
            <mdl-icon class="mdl-color-text--primary">group_work</mdl-icon><span>Ontology</span>
        </mdl-tab-panel-title>
        <mdl-tab-panel-content>
            <ul>
                <li>Stanis</li>
                <li>Joffrey</li>
            </ul>
        </mdl-tab-panel-content>
    </mdl-tab-panel>
    <mdl-tab-panel mdl-tab-panel-title="another">
        <mdl-tab-panel-title>
            <mdl-icon class="mdl-color-text--primary">list</mdl-icon><span>Cognitive</span>
        </mdl-tab-panel-title>
        <mdl-tab-panel-content>
            <ul>
                <li>Robert</li>
            </ul>
        </mdl-tab-panel-content>
    </mdl-tab-panel>
    <mdl-tab-panel mdl-tab-panel-title="else">
        <mdl-tab-panel-title>
            <mdl-icon class="mdl-color-text--primary">call_split</mdl-icon><span>Cognition</span>
        </mdl-tab-panel-title>
        <mdl-tab-panel-content>
            <ul>
                <li>Robert</li>
                <li>Renly</li>
            </ul>
        </mdl-tab-panel-content>
    </mdl-tab-panel>
    <mdl-tab-panel mdl-tab-panel-title="last">
        <mdl-tab-panel-title>
            <mdl-icon class="mdl-color-text--primary">backup</mdl-icon><span>Streaming</span>
        </mdl-tab-panel-title>
        <mdl-tab-panel-content>
            <ul>
                <li>Joffrey</li>
                <li>Myrcella</li>
                <li>Tommen</li>
            </ul>
        </mdl-tab-panel-content>
    </mdl-tab-panel>
</mdl-tabs>

웹 팩을 사용하고 있는데 다음 오류가 발생합니다.

ERROR in [default] home/my-app-ui/src/app/landing.my.ts:10:23 
Binding element 'index' implicitly has an 'any' type.

하지만 그 앱은 원하는 기능을 보여줍니다, 누가 이것을 고치는 방법을 설명해줄 수 있나요?

개체의 경우 유형을 다음과 같이 선언해야 합니다.

{index} : {index:any}

더 많은 소품이 있는 객체의 경우:

{a,b} : {a:any, b:any}

개체의 경우 하나의 받침을 사용하여 다음과 같이 선언해야 합니다.

{propA} : {propA:any}

두 개 이상의 지지대를 사용할 경우:

{propA, propB} : {propA:any, propB:any}

사용하다any또는 변수의 특정 유형(숫자, 문자열 등)

public tabChanged(index:any): void {
    this.activeIndex = index;
}

이것은 형식 스크립트 컴파일러의 검사입니다.체크를 제거하거나 선언에서 임의 유형을 명시적으로 지정할 수 있습니다(@Tyagu의 답변).에서tsconfig.json파일, 당신은 선을 바꿀 수 있습니다.

"noImplicitAny": false,

로.

"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true //tsconfig.json 

noImplicitAny 플래그가 true인 경우에도 변수 유형을 임의로 설정할 수 있습니다.

더하다suppressImplicitAnyIndexErrors이내에compilerOptionstsconfig.json 파일에 있습니다.예:

"compilerOptions": {
   "suppressImplicitAnyIndexErrors": true
}

다음 솔루션을 시도할 수 있습니다. 'ts config'로 이동하십시오.프로젝트 디렉터리에 있는 JSON' 파일입니다.파일 내에서 '엄격한' 속성을 찾아 해당 값을 '참'에서 '거짓'으로 변경합니다.이렇게 수정하면 현재 발생한 문제를 해결하는 데 도움이 될 수 있는 일부 엄격한 유형 스크립트 컴파일러 검사가 완화됩니다.그러나 엄격한 검사를 해제하면 유형 오류가 발생하거나 코드 품질이 저하될 수 있으므로 이 문제를 임시 해결책으로 사용하고 가능한 경우 다른 해결책을 고려하는 것이 좋습니다.감사해요.

응답 기본값을 찾고 있는 경우, 스크립트 답변을 입력합니다.

const MainHome = ({props}:any) => {
  
}

언급URL : https://stackoverflow.com/questions/40745992/binding-element-index-implicitly-has-an-any-type

반응형