Change History > 1 11 0 Edit this page 1.11.0 Change Notes TypeScript 3.7.4 iModel.js now compiles with TypeScript 3.7.2. Aside from keeping current, the primary motivations for the upgrade include uncalled function checks and assertion functions. assert is now an assertion function. This assures the compiler that code following a call to assert will never execute unless the asserted condition is true. Bear in mind that because calls to assert are stripped out of production builds, this assurance is only true in development builds - so reserve use of assert for conditions that are truly never expected to occur, and use ordinary validation and exception handling for other conditions. api-extractor 7.7.3 Upgrading to TypeScript 3.7.2 necessitated an upgrade to a new version of api-extractor, primarily due to changes to the JavaScript emitted by tsc for property getters and setters. api-extractor now requires that documentation and release tags are applied only to the getter, never the setter. This imposes some constraints which were temporarily relaxed in api-extractor 3.6: Write-only properties (having only a setter, no getter) are rejected. A setter cannot have a different release tag than the corresponding getter. Module documentation Upgrading to TypeScript 3.7.2 necessitated an upgrade to typedoc 0.15.1 and v2.1.0 of the typedoc plugin used to support external module declarations. This changes the format of @module comments. Previous syntax for @module comments: /** @module ModuleName */ New syntax for @module comments: /** @packageDocumentation * @module ModuleName */ Without the @packageDocumentation, the documentation generator will fail to recognize that the source file should be mapped to the ModuleName external module. Geometry new public methods in RegionOps: RegionOps.sortOuterAndHoleLoopsXY apply parity logic to determine containment of holes in parents (or holes in islands) RegionOps.constructAllXYRegionLoops Compute intersections among unstructured input curves Construct areas bounded by those inputs. RegionOps.curveArrayRange construct range of unstructured array of curves. RegionOps.expandLineStrings In an array of curve primitives, replace each LineString3d with expansion to LineSegment3d (new method) CurveCurve.allIntersectionsAmongPrimitivesXY Supporting changes in CurveCurveIntersectionXY context class. CurveLocationDetail new method to ask if fraction1 is present (i.e. this is an interval rather than single point. Make implementations of CurvePrimitive and CurveCollection methods to collect leaf primitives and strokes more consistent: collectCurvePrimitives method new optional args for (a) preallocated collector, (b) controlling expansion of CurveChainWithDistanceIndex public entry RegionOps.collectCurvePrimitives internal entries in CurveCollection, CurvePrimitive internal "Go" methods in: CurveChainWithDistanceIndex, CurveChain.cloneStroked is abstract (implemented by Path, Loop, CurveChainWithDistanceIndex CurveFactory New method to create xy rectangles with optional fillets. Last Updated: 13 June, 2024