Circular Type References in TypeScript -
i new typescript , trying understand how can setup circular reference between 2 types. reference need not full code reference, interfaces, interfaces defined in separate files. example, let's have 2 interfaces: parent , child. doubly-linked such parent has collection of children , each child has reference parent (as seen below). how setup imports or dependencies these can defined in separate files?
interface parent { children: child[] } interface child { parent: parent }
two solutions below. prefer latter since offers clean interfacing node js modules, unfortunately ide doesn't (yet) as do...
use references
create definitions.d.ts file contain references classes/interfaces
/// <reference path="parent.ts" /> /// <reference path="child.ts" /> in parent.ts , child.ts, point single reference, definitions.d.ts file
/// <reference path="definitions.d.ts" /> use import...require
pass --module commonjs flag tsc import require , export want expose
in parent.ts
import child = require('child') interface parent { children: child[] } export = parent in child.ts
import parent = require('parent') interface child { parent: parent } export = child please note, not specify extension '.ts' in require
edit sept 2016
it better use es6 style imports (and avoid default exports):
parent.ts
import { child } './child' export interface parent { children: child[] } child.ts
import { parent } './parent' export interface child { parent: parent }
Comments
Post a Comment