build - Typescript export syntax & code structuring -


i'm building typescript library, , following way:

  1. one class (interface) / file in dev sources
  2. since whole library "belongs together", can go under 1 namespace
  3. when building, want able create single output js , d.ts file, relevant exports/definitions.

the way tried following:

i used /// <reference path="..." /> syntax, reference other files

foo.ts

class foo {     // stuff } 

bar.ts

/// <reference path="foo" />  class bar extends foo {     // example referencing compilation unit } 

create tsconfig.json file, uses out option, concatenated single file:

{     "compileroptions": {         "module": "commonjs",         "target": "es5",         "out": "src-gen/app.js"         /* other options ... */     } } 

and add single file, exports stuff, want able import other files, this:

exports.ts

/// <reference path="bar" />  export {bar} // don't want expose foo, since not relevant users of lib. 

but export {bar} line gives following compile error:

circular definition of import alias 'bar'. import bar

i have no idea, error means, since bar not imported anywhere, referenced using /// <reference> syntax.

my whole goal @ end is, have single file, js file output, looks this:

/* compiled js source of foo */  /* compiled js source of bar */  exports = {     bar } 

my question(s) are:

  1. is valid way things?
  2. if yes, what's problem export {bar}
  3. if no, how achieve, want do?

thanks in advance, help/advice!

i think want use modules:

foo.js

module mymodule {   class foo {       // stuff   } } 

bar.js

module mymodule {   export class bar extends foo {       // stuff   } } 

then don't need exports.js, since items marked export exported.

i believe that, if compile files @ once, won't need /// <reference lines, either.

edit: think answer question here: creating single commonjs module several typescript classes


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -