IT

TypeScript 컴파일의 실험용 장식자 경고

itgroup 2023. 3. 4. 14:44
반응형

TypeScript 컴파일의 실험용 장식자 경고

나는 경고를 받았다...

데코레이터 실험 지원은 향후 릴리즈에서 변경될 수 있는 기능입니다.이 경고를 제거하려면 'experimentalDecorators' 옵션을 설정하십시오.

tsconfig.json의 컴파일러 옵션에는 다음과 같은 설정이 있습니다만,

"emitDecoratorMetadata": true,
"experimentalDecorators": true,

이상한 것은 데코레이터를 사용하는 일부 랜덤 클래스는 경고를 표시하지 않지만 같은 프로젝트의 나머지 클래스는 경고를 표시합니다.

TypeScript 컴파일러에서 이러한 동작을 일으키는 원인은 무엇입니까?

vscode의 settings.json 파일에 다음 사항을 추가하여 경고를 제거해야 합니다.

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode -> 프리퍼런스 -> 설정

여기에 이미지 설명 입력

갱신하다

Clepsyd가 지적했듯이 이 설정은 더 이상 사용되지 않았습니다.지금 바로 사용하셔야 합니다.

"js/ts.implicitProjectConfig.experimentalDecorators":true

여기에 이미지 설명 입력

VS Code TypeScript 。대부분의 경우 경고 없이 특정 파일이 파일을 놀라게 하고 불만을 제기합니다. 열려 있는 파일을 여는 으로 보입니다.tsconfig.json그 후 문제 파일을 오류 없이 다시 열 수 있습니다.효과가 없으면 거품을 내고 헹구고 반복하세요.

의 '' ''가tsconfig.json는 소스 합니다.filesIntelliSense는 VS 코드가 입력 파일 트리를 통과하여 찾을 수 있도록 문제의 파일이 참조된 경우에만 올바르게 작동합니다.

편집: '창 새로고침' 명령어(오래 전에 추가)를 사용하면 이 문제를 완전히 해결할 수 있습니다.

파일 -> 설정 -> 설정

이 오류는 작업영역 폴더에 "src" 폴더를 선택한 경우에도 발생합니다.

루트 폴더, 즉 "src", "node_modules"가 있는 폴더를 선택하면 오류가 사라집니다.

다음 단계에 따라 이 경고 메시지를 삭제하십시오. 여기에 이미지 설명 입력

1단계: IDE 설정으로 이동하여 experimentalDecorator여기에 이미지 설명 입력검색하거나 검색합니다.

2단계: 그런 다음 체크박스를 클릭하면 페이지에서 경고가 제거되었습니다.

여기에 이미지 설명 입력

프로젝트 내에서 파일 tsconfig.json을 생성하고 다음 행을 추가합니다.

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true
    }
}

VSCode에서 File = > Preferences = > Settings(또는 Control+comma)로 이동하면 사용자 설정 파일이 열립니다."javascript.implicit ProjectConfig.experimentalDecorators"를 검색한 후 파일의 experimentalDecorator 체크박스를 켜면 파일이 수정됩니다.나한텐 그랬다.

여기에 이미지 설명 입력

typescript.tsdk 나 my my my.vscode/settings.json

"typescript.tsdk": "node_modules/typescript/lib"

이 경고는 vscoode에 표시됩니다.vscoode는, 를 사용해 새로운 Angular 서비스를 작성했을 때에 표시됩니다.

@Injectable({
  providedIn: 'root'
})

구문(app.disc.ts에서 서비스를 제공하는 대신)을 지정합니다.

이 경고는 프로젝트의 어딘가에서 새로운 서비스를 참조할 때까지 계속됩니다.서비스가 사용되면 경고가 사라집니다.타이프스크립트 구성이나 vscode 설정을 변경할 필요가 없습니다.

이 에러는, 「데코레이터에 대한 실험적인 서포트는, 장래의 릴리스에서 변경될 가능성이 있는 기능입니다.(etc)"는 Angular 프로젝트의 VS Code에서만 발생하며 새로운 서비스를 작성할 때만 발생합니다.

위의 해결책: "Visual Code Studio Go to File" (Visual Code Studio 파일로 이동)> [ Preferences ]> [ Settings ](설정)에서 검색 필드에서 "decorator"를 검색하여 옵션 JavaScript © Implicit Project Config:"실험적인 장식가"는 문제를 해결했다.

또한 터미널 창에서 ng serve를 중지하고 재시작하면 재컴파일 후 오류가 사라집니다.

[ Visual Code Studio ][ File ]> [ Preferences ]> [ Settings ](설정)으로 이동하여 검색필드에서 [Decorator](디코레이터)를 검색하여 이미지와 같이 옵션을 체크합니다.여기에 이미지 설명 입력

답변은 타입스크립트가 아닌 Javascript 프로젝트를 사용하는 사용자를 대상으로 합니다.tsconfig.json 파일 대신 jsconfig.json 파일을 사용할 수 있습니다.

데코레이터가 경고하는 경우 파일 내부에 다음과 같이 입력합니다.

{
    "compilerOptions": {
        "experimentalDecorators": true
    }
}

버그가 있는 동작에 대해서는, 항상 설정 파일에 「포함」을 지정하고, 에디터를 재기동하는 것이 좋습니다.예.

{
    "compilerOptions": {
        "target": "ES6",
        "experimentalDecorators": true
    },
    "include": [
        "app/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}

.settings.json <project_folder>/.vscode/settings.json

또는 아래 메뉴에서 파일을 열 수 있습니다.

VSCode -> File -> Preferences -> Workspace Settings

ExperimentDecorators 설정

다음 을 쓰다에 해 주세요.settings.json

{
    "typescript.tsdk": "node_modules/typescript/lib",
    "enable_typescript_language_service": false
}

그게 다예요.experimentalDecorators에 관한 경고/오류는 표시되지 않습니다.

"javascript.implicitProjectConfig.experimentalDecorators": true

이 문제를 해결할 것이다.

tsconfig.json에 다음 행을 추가하고 VS Code를 재시작합니다.

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "target": "es5",
        "allowJs": true
    }
}

순서 1: VS 코드에서 Ctrl + 를 누릅니다.

스텝 2: 'js/ts.implicit Project Config: Experimental Decorators 검색 상자

3단계: 검색과 관련된 체크박스를 켭니다.

여기에 이미지 설명 입력

CLI를 사용하여 *.ts 파일을 컴파일하는 경우 다음 명령을 사용하여 experimentalDecorator를 설정할 수 있습니다.

 tsc filename.ts --experimentalDecorators "true"

최근 Visual Studio 2017에서 이 문제가 발생했는데, 이는 빌드 액션이 콘텐츠로 설정되어 있지 않을 때 VS가 tsconfig.json을 무시하는 "기능"으로 인해 발생한 것으로 나타났습니다.

빌드 액션을 콘텐츠로 변경하고 솔루션을 새로고침하면 문제가 해결되었습니다.

요점을 강조하지는 않지만 다음 사항을 반드시 추가해 주십시오.

  • 사용자 설정이 아닌 작업 공간 설정

[ File ] > [ Preferences ] > [ Settings ]에서 선택합니다.

"javascript.implicit ProjectConfig.experimentalDecorators" : true

이것은 나에게 문제를 해결했고, 나는 여기와 다른 곳에서 찾은 꽤 많은 제안들을 시도했다.

  1. VScode를 엽니다.
  2. Ctrl+Comma를 누릅니다.
  3. 스크린샷의 지시에 따릅니다.
    1. ExperimentalDecorator 검색
    2. 편집

다음 문장에서 이 오류가 발생했습니다.

데코레이터 실험 지원은 향후 릴리즈에서 변경될 수 있는 기능입니다.tsconfig 또는 jsconfig에서 'experimentalDecorators' 옵션을 설정하여 이 경고를 삭제합니다.ts(1219)

컴포넌트가 AppModule 또는 (app.module.ts)에 등록되어 있지 않기 때문에 네임스페이스에 다음과 같이 입력했을 입니다.

{abc Component }을(를) '../app/abc/abc.component'에서 Import합니다.

그리고 그것을 신고서에 등록했다.

명확성과 어리석음을 위해서.

1) .vscode/settings.json을 엽니다.

2) "typescript.tsdk" : "node_modules/typescript/lib" 를 추가합니다.

3) 저장합니다.

4) Visual Studio Code를 재시작합니다.

Visual studio에서 작업하는 경우.이 수정을 시도해 볼 수 있습니다.

  1. 비주얼 스튜디오에서 프로젝트 언로드
  2. 프로젝트 홈 디렉토리로 이동하여 "csproj" 파일을 엽니다.
  3. 이미지와 같이 이 섹션에 TypeScriptExperimentalDecorator를 추가합니다.

    여기에 이미지 설명 입력

    1. Visual studio에서 프로젝트를 다시 로드합니다.

자세한 것은, 이쪽을 참조해 주세요.

src 폴더뿐만 아니라 전체 프로젝트의 폴더를 VS 코드에서 선택했는지 확인하십시오. src만 열면 ts.config.json(프로젝트 폴더 내에 위치) 파일은 범위에 포함되지 않으며 VS는 실험용 데코레이터 파라미터를 인식하지 않습니다.

제 경우, 이것으로 이 문제와 관련된 모든 문제가 해결되었습니다.

에는 이 를 내, 는, 는, 는, 는, 는, in으로 설정해서 해결했습니다."include": [ "src/**/*"] 집에서는tsconfig.jsonvscode를 다시 시작하고 있습니다.github 문제에서 이 솔루션을 입수했습니다.https://github.com/microsoft/TypeScript/issues/9335

프로젝트 이름/src 대신 전체 프로젝트 폴더 열기

tsconfig.json이 src 폴더를 벗어났습니다.

Angular 2에서 Injectionable Services를 만들 때 동일한 문제에 직면했습니다.tsconfig.json에는 모든 것이 준비되어 있습니다.그래도 ColorsImmptable 라인에서 이 에러가 발생하고 있습니다.

@Injectable()
export class ColorsImmutable {

또한 프로바이더 어레이를 사용하여 모듈 레벨 또는 컴포넌트 레벨에서 서비스를 등록하는 것이 수정되었습니다.

providers:[ColorsImmutable ],

Deno JavaScript 및 TypeScript 런타임에서 experimentalDecorators: tsconfig.json 또는 VSCode ide 설정에서 true를 사용하도록 설정한 경우그것은 작동하지 않을 것이다.Deno 요건에 따라 Deno 파일을 실행할 때 tsconfig를 플래그로 제공해야 합니다.사용자 지정 TypeScript 컴파일러 옵션 참조

내 경우에는 Deno 테스트를 실행하다가 사용했어.

$ deno test -c tsconfig.json

파일일 경우 다음과 같은 정보가 있습니다.

 $ deno run -c tsconfig.json mod.ts

tsconfig.json

{
  "compilerOptions": {
    "allowJs": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "module": "esnext"
  }
}

이 코드로 실행할 수 있습니다.

 tsc .\src\index.ts --experimentalDecorators "true" --emitDecoratorMetadata "true"

리액트와 네스트를 프로젝트에 사용했습니다.이 에러는 백엔드에 표시되지만, 이 두 행을 추가하여 대응의 tsconfig.json에 의해 어떤 이유로 문제가 해결되었습니다.게다가 위의 모든 것이 나에게 통하지 않았다.

"compilerOptions": {
    ...
    "experimentalDecorators": true,
    "strictPropertyInitialization": false
},

언급URL : https://stackoverflow.com/questions/38271273/experimental-decorators-warning-in-typescript-compilation

반응형