[typescript] vscode 가져 오기 가져 오기 콘솔 = require (“console”); 자동적으로

import console = require("console");

console.<<를 입력합니다. 이상은 VScode에서 자동으로 가져옵니다. 아무도 그것을 비활성화하는 방법을 알고 있습니까?

(내 확장명 중 하나라고 생각합니다. 아마도 더 예쁘습니다.)

편집 : React Typescript 환경에서만 발생합니다. 반응하지 않고 Typescript에 없습니다.



답변

면책 조항 : 이것은 “솔루션”으로 간주되어서는 안되지만 가장 간단하고 빠릅니다.

이 답변은 VSCode를 사용한다고 가정합니다. 다른 IDE도 비슷해야합니다.

  1. 타이핑 시작 console
  2. enter 또는 type을 클릭 .하여 IntelliSense 가 추가하십시오import console = require("console");
  3. Ctrl + 클릭 (또는 F12 또는 macOS의 Cmd + 클릭) require("console")
  4. 이 코드를 주석 처리하십시오.
declare module "console" {
    export = console;
}


답변

나는 이것을 경험했지만 VSCode의 자동 가져 오기 기능에 문제가있는 것 같습니다. 모든 확장 기능을 비활성화해도 확장되지 않습니다.

해결 방법으로 설정에서 자동 가져 오기를 비활성화 할 수 있습니다.

자바 스크립트를 사용하는 경우

“javascript.suggest.autoImports”: false

Typescript를 사용하는 경우

“typescript.suggest.autoImports”: false

여기에 이미지 설명을 입력하십시오

편집 : 패키지의 종속성 트리 에서이 코드로 인해 잘못된 자동 가져 오기가 발생합니다.

declare module "console" {
    export = console;
}

패키지는 로컬 node_modules 디렉토리 또는 전체적으로 설치된 참조 패키지에있을 수 있습니다.

  1. 로컬 node_modules를 검색하십시오. declare module "console"
  2. 로컬 패키지에서 찾은 경우 실행 npm list [packageName]하여 package.json의 패키지가 콘솔 코드가 포함 된 패키지에 종속되는지 확인하십시오.

로컬 node_modules에서 코드를 찾지 못하면

  1. package.json에서 패키지를 하나씩 제거

  2. 프로젝트의 패키지에서 참조 할 수있는 전역으로 설치된 모듈에서 콘솔 코드를 검색하십시오.

% USERPROFILE % \ AppData \ Roaming \ npm \ node_modules % USERPROFILE % \ AppData \ Local \ Microsoft \ TypeScript

나는 그것이 직접적인 해결책이 아니라는 것을 알고 있지만, 그것이 도움이되기를 바랍니다. 내 경우에는 콘솔 코드가있는 react-native-copilot-> rimraf-> node에서 참조를했습니다. 반응 네이티브 코 파일럿을 제거하면 문제가 해결되었습니다.


답변

내가 찾은 가장 우아한 솔루션은 console.d.ts프로젝트 어딘가에 더미 파일 을 만드는 것입니다 .

declare module 'console' {
    export = typeof import("console");
}

자동 가져 오기가 방지됩니다.

크레딧 : https://github.com/Microsoft/TypeScript/issues/30471#issuecomment-474963436


답변

삽입 용 스 니펫을 추가하여 console.log대신 사용하면 “콘솔”을 자동으로 가져 오지 않습니다.

https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets

여기 내 스 니펫이 있습니다.

{
    "Print to console": {
        "prefix": "cl",
        "body": [
            "console.log('$1');",
        ],
        "description": "Log output to console"
    }
}


답변

“cl”을 잊어 버린 경우 스 니펫에 여러 접두사를 사용할 수 있습니다.)

{
    "Print to console": {
        "prefix": ["cl","co","con","cons","conso","consol","console", "console.l","console.lo","console.log"],
        "body": [
            "console.log($1);",
        ],
        "description": "Log output to console"
    }
}


답변

이를 방지하는 한 가지 방법은 tsconfig.json 파일을 수정하여 프로젝트로 자동으로 가져 오는 유형 세트를 제한하는 것입니다.

나는이 같은 문제가 있었고 다음을 추가하여 고쳤다.

types: []

내 tsconfig.json 파일에. 이것이하는 일은 @types/프로젝트 구성에있는 모든 노드 패키지를 자동으로 가져 오지 않도록 TypeScript (및 확장명 VSCode)를 비활성화하는 것입니다 . 이러한 유형을 사용하여 패키지를 명시 적으로 가져 오는 경우 TS가 해당 유형 정의를 가져 오는 것을 막을 수는 없습니다.

필자의 경우, console정의는에서 시작되었으며 @types/nodeStorybook의 종속성으로 프로젝트로 가져 왔습니다. 그러나 내 프로젝트는 브라우저에서 실행하기위한 웹 팩 프로젝트이므로 Node.js 유형을 소스 코드로 가져 오는 것은 의미가 없습니다. 브라우저에서 사용하려는 기본 유형 세트는 노드 유형이 아니라 dom 유형입니다.

프로젝트에 따라 기본 유형 패키지 세트를 types 매개 변수 등에 명시 적으로 추가해야 할 수도 있습니다 types: ["dom", "react"]. 그러나 필자의 경우 이것이 불필요하다고 판명되었으므로 프로젝트는 빈 목록으로 잘 컴파일 할 수있었습니다. VSCode가 자동으로 ‘콘솔’을 가져 오는 경향은 완전히 사라진 것으로 보입니다. 나는 지금까지 다른 악영향을 발견하지 못했습니다.

tsconfig.json의 유형 설정에 대한 자세한 정보는 https://www.typescriptlang.org/docs/handbook/tsconfig-json.html을 참조 하십시오.


답변