@@ -145,8 +145,8 @@ export declare interface CollectionObserver {
145145/**
146146 * The change record of a collection mutation.
147147 */
148- export declare interface ICollectionObserverSplice < T = any > {
149-
148+ export declare interface ICollectionObserverSplice < T = any , K = any > {
149+ /* ArrayObserverSplice */
150150 /**
151151 * Number of items added to the collection.
152152 */
@@ -161,6 +161,33 @@ export declare interface ICollectionObserverSplice<T = any> {
161161 * A collection of items that were removed from the collection.
162162 */
163163 removed : Array < T > ;
164+ /* End ArrayObserverSplice */
165+
166+ /**
167+ * The observed Set or Map after the change.
168+ */
169+ object : Set < T > | Map < K , T > ;
170+
171+ /**
172+ * The value of the Map item prior to the change.
173+ */
174+ oldValue : T ;
175+
176+ /**
177+ * The key of the Map item that was changed.
178+ */
179+ key : K ;
180+
181+ /**
182+ * The Set value that was either added or removed.
183+ */
184+ value : T ;
185+
186+ /**
187+ * The type of change that has taken place. Valid options are "add", "delete", and "update".
188+ * "update" is invalid for Set.
189+ */
190+ type : "add" | "delete" | "update" ;
164191}
165192
166193/**
@@ -721,6 +748,36 @@ export declare class CallMember extends Expression {
721748 constructor ( object : Expression , name : string , args : Expression [ ] ) ;
722749}
723750
751+ /**
752+ * An expression representing a (optionally tagged) template literal.
753+ */
754+ export declare class LiteralTemplate extends Expression {
755+ /**
756+ * The cooked (escaped) string parts of the template.
757+ * The first item is the TemplateHead. If there is only one item,
758+ * then this counts as a NoSubstituteTemplate - functionally equivalent
759+ * to a LiteralString, unless it's tagged.
760+ */
761+ cooked : string [ ] & {
762+ /**
763+ * The raw (unescaped) string parts of the template.
764+ * These are only retrieved and stored for tagged templates.
765+ */
766+ raw ?: string [ ]
767+ } ;
768+ /**
769+ * The expressions within the template (the parts between `${` and `}`)
770+ */
771+ expressions : Expression [ ] ;
772+ /**
773+ * The tag (function) to be invoked with the LiteralTemplate arguments.
774+ * The first argument is LiteralTemplate.cooked.
775+ * The following arguments are the results of evaluating LiteralTemplate.expressions.
776+ */
777+ func ?: AccessScope | AccessMember | AccessKeyed ;
778+ constructor ( cooked : string [ ] , expressions ?: Expression [ ] , raw ?: string [ ] , func ?: AccessScope | AccessMember | AccessKeyed ) ;
779+ }
780+
724781/**
725782 * Parses strings containing javascript expressions and returns a data-binding specialized AST.
726783 */
@@ -779,7 +836,7 @@ export declare class BindingEngine {
779836 /**
780837 * Gets an observer for collection mutation.
781838 */
782- collectionObserver ( collection : Array < any > | Map < any , any > ) : CollectionObserver ;
839+ collectionObserver ( collection : Array < any > | Map < any , any > | Set < any > ) : CollectionObserver ;
783840 /**
784841 * Gets an observer for a javascript expression that accesses a property on the binding context.
785842 * @param bindingContext The binding context (view-model)
0 commit comments