Update Knockout definitons and file version + tests

This commit is contained in:
Boris Yankov
2012-10-25 22:07:42 +03:00
parent 50138dabc4
commit be38ab26f9
2 changed files with 626 additions and 52 deletions
+109 -52
View File
@@ -1,6 +1,12 @@
// Type definitions for Knockout 2.1.0
// Type definitions for Knockout 2.2
// Project: http://knockoutjs.com
// https://github.com/borisyankov/DefinitelyTyped
interface KnockoutSubscription {
dispose(): void;
}
interface KnockoutObservableArrayFunctions {
// General Array functions
indexOf(searchElement, fromIndex?: number): number;
@@ -26,23 +32,33 @@ interface KnockoutObservableArrayFunctions {
}
interface KnockoutObservableArray extends KnockoutObservableArrayFunctions {
(): any[];
(value: any[]): void;
}
interface KnockoutObservableArrayStatic {
(): KnockoutObservableArray;
fn: KnockoutObservableArrayFunctions;
(): KnockoutObservableArray;
(value: any[]): KnockoutObservableArray;
}
interface KnockoutObservable {
fn;
(): any;
(value): void;
subscribe(func: Function): void;
extend(source);
subscribe(func: Function): KnockoutSubscription;
}
interface KnockoutComputed extends KnockoutObservable {
(): KnockoutComputed;
(func: Function, context?: any): KnockoutComputed;
(def: KnockoutComputedDefine): KnockoutComputed;
(options?: any): KnockoutComputed;
subscribe(callback: (newValue: number) => void ): KnockoutSubscription;
getDependenciesCount(): number;
hasWriteFunction(): bool;
}
interface KnockoutComputedDefine {
@@ -50,12 +66,6 @@ interface KnockoutComputedDefine {
write(any);
}
interface KnockoutComputedStatic {
(): KnockoutComputed;
(func: Function): KnockoutComputed;
(def: KnockoutComputedDefine) : KnockoutComputed;
}
interface KnockoutBindingContext {
$parent: any;
$parents: any[];
@@ -72,55 +82,102 @@ interface KnockoutBindingHandler {
//update(element: any, valueAccessor: any, allBindingsAccessor: any, viewModel: any, bindingContext: KnockoutBindingContext) : void;
init: any;
update: any;
options: any;
}
interface KnockoutBindingHandlers {
value: KnockoutBindingHandler;
}
interface KnockoutStatic {
utils: KnockoutUtilsStatic;
bindingHandlers: KnockoutBindingHandlers;
applyBindings(viewModel, rootNode?);
computed : KnockoutComputedStatic;
observableArray: KnockoutObservableArrayStatic;
observable(intial?): KnockoutObservable;
interface KnockoutMemoization {
memoize(callback);
unmemoize(memoId, callbackParams);
unmemoizeDomNodeAndDescendants(domNode, extraCallbackParamsArray);
parseMemoText(memoText);
}
interface KnockoutUtilsStatic {
arrayForEach(array: any[], action);
arrayIndexOf(array: any[], item);
arrayFirst(array: any[], predicate, predicateOwner?);
arrayRemoveItem(array: any[], itemToRemove);
arrayGetDistinctValues(array: any[]);
arrayMap(array: any[], mapping);
arrayFilter(array: any[], predicate);
arrayPushAll(array: any[], valuesToPush);
interface KnockoutVirtualElements {
allowedBindings;
emptyNode;
firstChild;
insertAfter;
nextSibling;
prepend;
setDomNodeChildren;
}
interface KnockoutExtenders {
throttle(target: any, timeout: number): KnockoutComputed;
notify(target: any, notifyWhen: string): any;
}
interface KnockoutUtils {
fieldsIncludedWithJsonPost: any[];
arrayForEach(array: any[], action: (any) => void ): void;
arrayIndexOf(array: any[], item: any): number;
arrayFirst(array: any[], predicate: (item) => bool, predicateOwner?: any): any;
arrayRemoveItem(array: any[], itemToRemove: any): void;
arrayGetDistinctValues(array: any[]): any[];
arrayMap(array: any[], mapping: (item) => any): any[];
arrayFilter(array: any[], predicate: (item) => bool): any[];
arrayPushAll(array: any[], valuesToPush: any[]): any[];
extend(target, source);
emptyDomNode(domNode);
moveCleanedNodesToContainerElement(nodes);
setDomNodeChildren(domNode, childNodes);
replaceDomNodes(nodeToReplaceOrNodeArray, newNodesArray);
setOptionNodeSelectionState(optionNode, isSelected);
stringTrim(str: string);
stringTokenize(str: string, delimiter);
stringStartsWith(str: string, startsWith);
buildEvalWithinScopeFunction(expression, scopeLevels);
domNodeIsContainedBy(node, containedByNode);
domNodeIsAttachedToDocument(node);
tagNameLower(element);
registerEventHandler(element, eventType, handler);
triggerEvent(element, eventType);
unwrapObservable(value);
toggleDomNodeCssClass(node, className, shouldHaveClass);
setTextContent(element, textContent);
emptyDomNode(domNode): void;
moveCleanedNodesToContainerElement(nodes: any[]): HTMLElement;
cloneNodes(nodesArray: any[], shouldCleanNodes: bool): any[];
setDomNodeChildren(domNode: any, childNodes: any[]): void;
replaceDomNodes(nodeToReplaceOrNodeArray: any, newNodesArray: any[]): void;
setOptionNodeSelectionState(optionNode: any, isSelected: bool): void;
stringTrim(str: string): string;
stringTokenize(str: string, delimiter: string): string;
stringStartsWith(str: string, startsWith: string): string;
domNodeIsContainedBy(node: any, containedByNode: any): bool;
domNodeIsAttachedToDocument(node: any): bool;
tagNameLower(element: any): string;
registerEventHandler(element: any, eventType: any, handler: Function): void;
triggerEvent(element: any, eventType: any): void;
unwrapObservable(value: any): any;
toggleDomNodeCssClass(node: any, className: string, shouldHaveClass: bool): void;
setTextContent(element: any, textContent: string): void;
setElementName(element: any, name: string): void;
ensureSelectElementIsRenderedCorrectly(selectElement);
range(min, max);
makeArray(arrayLikeObject);
getFormFields(form, fieldName);
parseJson(jsonString);
stringifyJson(data, replacer, space);
postJson(urlOrForm, data, options);
forceRefresh(node: any): void;
ensureSelectElementIsRenderedCorrectly(selectElement: any): void;
range(min: any, max: any): any;
makeArray(arrayLikeObject: any): any[];
getFormFields(form: any, fieldName: string): any[];
parseJson(jsonString: string): any;
stringifyJson(data: any, replacer: Function, space: string): string;
postJson(urlOrForm: any, data: any, options: any): void;
domNodeDisposal;
}
interface KnockoutStatic {
utils: KnockoutUtils;
memoization: KnockoutMemoization;
bindingHandlers: KnockoutBindingHandlers;
computed: KnockoutComputed;
observableArray: KnockoutObservableArray;
virtualElements: KnockoutVirtualElements;
extenders: KnockoutExtenders;
applyBindings(viewModel: any, rootNode?: any): void;
applyBindingsToDescendants(viewModel: any, rootNode: any): void;
observable(intial? ): KnockoutObservable;
contextFor(node: any): any;
isSubscribable(instance: any): bool;
subscribable(): void;
toJSON(viewModel: any, replacer?: Function, space?: any): string;
toJS(viewModel: any): any;
isObservable(instance: any): bool;
dataFor(node: any): any;
}
declare var ko: KnockoutStatic;