reference - tsconfig.json bruges ikke af TypeScript-kompileren?


Jeg er ny til TypeScript. Jeg prøver at opsætte brugen af det i WebStorm. Jeg har oprettet en tsconfig.json fil i roden af mit projekt og ændret den indbyggede ts-kompilator til version 1.6.2. Alligevel er jeg nødt til at inkludere reference-stier i hver ts-fil. Jeg håbede, at dette ikke længere ville være nødvendigt, når jeg havde defineret tsconfig.json-filen.

Jeg forsøgte at isolere problemet og testede uden for WebStorm. Problemet forbliver. Dette er min opsætning: Jeg installerede TypeScript med "npm install -g typescript". Jeg oprettede en mappe med denne struktur:

test\
  tsconfig.json
  src\
     file1.ts
     file2.ts

file2.ts bruger en klasse, som er oprettet i file1.ts.

Når jeg kører "tsc file2.ts" inde i src-mappen, får jeg en:

C:\data\tryout\tsconfig\src\file2.ts(11,20): error TS2095: Could not find symbol 'TodoCtrl'.

Hvad skal jeg gøre for at få compileren til automatisk at finde alle ts-filer?

fil1.ts:

module todos {
    'use strict';

    export class TodoCtrl {
        constructor() { }

        onTodos() {
                console.log('ok');
        }
    }
}

fil2.ts:

// does work with ///<reference path='file1.ts' />
module todos {
    'use strict';

    export class DoneCtrl {
        constructor() { }

        onDone() {
            var test = new TodoCtrl();
        }
    }
}

resultat :

error TS2095: Could not find symbol 'TodoCtrl'.

Jeg har lagt alting i en zip: https://www.dropbox.com/s/o4x52rddanhjqnr/tsconfig.zip?dl=0

Svar #1

Kørsel af tsc src\file2.ts vil kun bruge src\file2.ts som input.

Kør tsc i mappen uden inputfiler, for at den kan bruge tsconfig.json, og indtast alle .ts-filer i mappen og undermapperne.

Hvad angår hvorfor tsc src\file2.ts ikke virker. Din reference manglede en skråstreg.

// <reference path='file1.ts' />

bør være:

/// <reference path='file1.ts' />

Svar #2

Jeg er ikke sikker på, om dette vil være relevant for dit arbejde, men din zip indeholder en tom tsconfig.json. Jeg udfyldte den med nogle muligheder og kunne faktisk kompilere, både fra kommandolinjen og fra editoren.

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "rootDir": ".",
        "outDir": ".",
        "sourceMap": false
    },
    "filesGlob": [
        "./src/*.ts"
    ]
}

Jeg håber, dette fører dig et sted hen.

Relaterede artikler