node.js - TypeScript - Bruke <reference path=".....">-taggen


Jeg prøver å legge til en plugin til TypeScript-kompilatoren, så jeg la til koden min og kompilert tsc.ts. Den kompilerer korrekt, men når jeg kjører, mangler noen variabler som er deklarert i io.ts. Jeg fjernet endringene mine, og det fungerer fortsatt ikke. Så jeg prøvde dette:

fil: a.ts

var a : number = 5;

fil: b.ts

///<reference path='a.ts' />
console.log(a);

og deretter kompilere: tsc b.ts som gir meg a.js og b.js. Når jeg prøver å kjøre b.js (jeg gjør node b.js), er variabelen a udefinert. Dette er innholdet i b.js:

///<reference path='a.ts' />
console.log(a);

og det gir derfor mening at a er udefinert, siden a ikke finnes noe sted i denne filen, og dermed heller ikke a.ts.

Komplilerer jeg det feil, eller kjører jeg det feil... eller hva?

Svar #1

Hvis du kjører under Node, bør du bruke export og import for å håndtere avhengigheter mellom filer.

a.ts

export var x = 5;

b.ts

import a = require('./a');
console.log(a.x);

Kompiler med --module commonjs

Hvis du kjørte på nettet, kunne du bruke --outFile for å sette sammen til en enkelt fil, men det er vanligvis ikke et godt alternativ under node.

Relaterte artikler