diff --git a/knockout.mapping/knockout.mapping-tests.ts b/knockout.mapping/knockout.mapping-tests.ts
new file mode 100644
index 0000000000..41ba2e9bcf
--- /dev/null
+++ b/knockout.mapping/knockout.mapping-tests.ts
@@ -0,0 +1,67 @@
+///
+///
+
+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'] });
\ No newline at end of file
diff --git a/knockout.mapping/knockout.mapping.d.ts b/knockout.mapping/knockout.mapping.d.ts
index 2c8af47855..a98c7fc038 100644
--- a/knockout.mapping/knockout.mapping.d.ts
+++ b/knockout.mapping/knockout.mapping.d.ts
@@ -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 {