This project is read-only.

Compilation, modules, workflow

Topics: General
Jan 10, 2014 at 8:07 PM
Hi guys,

I tried to use typescript and I couldn't figure out something that I think should be a simple thing to do.

Let's say I have this structure:
geom/Shape.ts: this is a Shape class within a "geom" module.
Main.ts - the Main class that uses the geom.Shape class (eg. creates instances of it)

I'd like to compile these into a single js file but I couldn't figure out how.
If I use these options:
--sourcemap $FileName$ --out app.js geom.Shape.ts Main.ts
or these:
--sourcemap $FileName$ --out app.js Main.ts

the compilation breaks with an error:
error TS5007: Cannot resolve referenced file: 'geom.Shape.ts'.

Generally what would be awesome to have multiple modules, each having multiple .ts files, each .ts file is a typescript class, and I could just compile all of it into one js file.

Is this somehow possible with a compiler flag?
Jan 10, 2014 at 9:15 PM
Is the filename geom/Shape.ts or geom.Shape.ts?
Jan 10, 2014 at 10:09 PM
Hi Ryan,

thanks for the reply. It was "Shape.ts". inside the geom folder.
In the meantime I could manage to solve this compile error by using this in the Main:

///<reference path='geom/Shape.ts'/>

With this, even circular dependencies seem to work! I wonder though, why is this needed? It seems a bit cumbersome to use such annotations.
In the end, ideally, I would love to use typescript as I used to use Java/Actionscript3/etc that is:
  • some packages
  • each package has some .ts files
  • each .ts file has exactly one Class
  • circular dependencies are possible
  • on compilation it results in a single file, but it doesn't include unused classes
  • strong, static typing - which works of course fine with TS
  • refactoring - which I have trouble with using WebStorm, although this should work easily, shouldn't it?
All of these seem to be managable in typescript the way I see it!