Made any parameter explicit and added tests

This commit is contained in:
Erik Schierboom
2014-11-22 13:21:39 +01:00
parent bd9a1922e4
commit 2db8ff1f09
2 changed files with 68 additions and 1 deletions

View File

@@ -0,0 +1,67 @@
/// <reference path="knockout.mapping.d.ts" />
/// <reference path="../knockout/knockout.d.ts" />
var inputJSON = '{ name: "foo" }';
var inputData = { name: 'foo' };
var inputModel = { name: 'bar' };
var inputParent = { name: 'parent' };
var options = {};
var createOptions = {
data: inputData,
parent: parent
}
var updateOptions = {
data: inputData,
parent: parent,
observable: ko.observable(7)
}
var targetOptions = {};
var inputOptions = {};
var mappingOptions = {
ignore: ['age'],
include: ['name'],
copy: ['height'],
mappedProperties: ['age', 'name'],
deferEvaluation: false,
create: function (options: KnockoutMappingCreateOptions) { },
update: function (options: KnockoutMappingUpdateOptions) { },
key: function (data: any) { return data; }
}
// Utility functions
mapping.isMapped(inputModel);
mapping.defaultOptions();
mapping.resetDefaultOptions();
mapping.getType(inputModel);
// fromJS function
mapping.fromJS(inputData);
mapping.fromJS(inputData, targetOptions);
mapping.fromJS(inputData, inputOptions, inputModel);
// fromJSON function
mapping.fromJSON(inputJSON);
mapping.fromJSON(inputJSON, targetOptions);
mapping.fromJSON(inputJSON, inputOptions, inputModel);
// toJS function
mapping.toJS(inputModel);
mapping.toJS(inputModel, mappingOptions);
// toJSON function
mapping.toJSON(inputModel);
mapping.toJSON(inputModel, mappingOptions);
// visitModel function
mapping.visitModel(inputModel, function (x: any) { return x; }, {});
mapping.visitModel(inputModel, function (x: any) { return x; }, { visitedObjects: null });
mapping.visitModel(inputModel, function (x: any) { return x; }, { parentName: 'parent' });
mapping.visitModel(inputModel, function (x: any) { return x; }, { ignore: ['age'] });
mapping.visitModel(inputModel, function (x: any) { return x; }, { copy: ['height'] });
mapping.visitModel(inputModel, function (x: any) { return x; }, { include: ['name'] });
mapping.visitModel(inputModel, function (x: any) { return x; }, { visitedObjects: null, parentName: 'parent', ignore: ['age'], copy: ['height'], include: ['name'] });

View File

@@ -40,7 +40,7 @@ interface KnockoutMapping {
defaultOptions(): KnockoutMappingOptions;
resetDefaultOptions(): void;
getType(x: any): any;
visitModel(rootObject: any, callback: Function, options?: { visitedObjects?; parentName?; ignore?; copy?; include?; }): any;
visitModel(rootObject: any, callback: Function, options?: { visitedObjects?: any; parentName?: string; ignore?: string[]; copy?: string[]; include?: string[]; }): any;
}
interface KnockoutStatic {