import { BaseResolver, PortResolver } from "@nx/typescript-domain" interface IColor { red: number; green: number; blue: number; } class Domain extends BaseResolver { get Color(): IColor { return this.resolve("IColor") }; } const resolver = new PortResolver(); resolver.registerInstance("IColor", () => ({red: 1.0, green: 0, blue: 0})) // resolver.register("IColor", () => ({red: 1.0, green: 0, blue: 0})) const domain = new Domain(); domain.setResolver(resolver); console.log("color", domain.Color); domain.Color.green = 0.5; // registerInstance: allow changes, register returns new object console.log("color", domain.Color);