javascript - Fel: 'types' kan bara användas i en .ts-fil - Visual Studio Code använder @ts-check


Jag börjar använda TypeScript i ett Node-projekt som jag arbetar med i Visual Studio Code. Jag ville följa strategin "opt-in", liknande Flow. Därför satte jag // @ts-check överst i min .js-fil i hopp om att aktivera TS för den filen. I slutändan vill jag ha samma upplevelse av "linting" som Flow, därför installerade jag pluginet TSLint så att jag kunde se Intellisense-varningar/fel.

Men med min fil som ser ut så här:

// @ts-check

module.exports = {
  someMethod: (param: string): string => {
    return param;
  },
};

och min tsconfig.json-fil ser ut som...

{
  "compilerOptions": {
      "target": "es2016",
      "module": "commonjs",
      "allowJs": true
  }
}

Jag får detta fel: [js] 'types' kan bara användas i en .ts-fil. som visas nedan i bilden.

Jag såg den här frågan som rekommenderade att stänga av javascript-validering i vscode, men då visas inte någon TypeScript Intellisense-information för mig.

Jag försökte ställa in tslint.jsEnable till true i mina vscode-inställningar som nämnts i TSLint-tilläggens dokumentation, men utan framgång.

Vad är den korrekta inställningen för att använda .js-filer med TypeScript och få Intellisense så att jag vet vilka fel som finns i min kod innan jag kör några TS-kommandon?

Svar #1

Jag använder Flow med VSCode men hade samma problem. Jag löste det med dessa steg:

  1. Installera tillägget Flow Language Support

  2. Inaktivera den inbyggda TypeScript-tillägget:

    1. Gå till fliken Tillägg
    2. Sök efter @builtin TypeScript och JavaScript språkfunktioner
    3. Klicka på Inaktivera

Svar #2

Använd "javascript.validate.enable": false i dina VS Code-inställningar, det inaktiverar inte ESLINT. Jag använder både ESLINT & Flow. Följ helt enkelt instruktionerna Flow För Vs Code Setup

Lägger till den här raden i settings.json. Hjälper "javascript.validate.enable": false

Svar #3

Jag följde följande steg för att åtgärda problemet:

Gå till Inställningar och sedan till inställningar:

Efter att ha gått till inställningar, sök efter javascript.validate i sökfältet och avmarkera kryssrutan:

om du vill redigera det via json då: Gå till: Kod -> Preferenser -> Inställningar -> Tillägg -> Scrolla ner och hitta "Redigera i settings.json".

lägg sedan till

"javascript.validate.enable": false

Svar #4

För alla som hamnar här och alla de andra lösningarna inte fungerade, prova detta. Jag använder typescript + react och mitt problem var att jag associerade filerna i vscode som javascriptreact istället för typescriptreact, så kontrollera dina inställningar för följande poster.

   "files.associations": {
    "*.tsx": "typescriptreact",
    "*.ts": "typescriptreact"
  },

Kom ihåg att starta om TypeScript-servern i VS Code efter att du har sparat ändringarna: Ctrl-Shift-P -> TypeScript: Starta om TS-servern

Relaterade artiklar