diff --git a/raty/raty-tests.ts b/raty/raty-tests.ts
new file mode 100644
index 0000000000..89efb79c3d
--- /dev/null
+++ b/raty/raty-tests.ts
@@ -0,0 +1,54 @@
+///
+///
+
+
+var $element: JQuery = $('
');
+
+$element.raty();
+
+$element.raty({
+ cancel: false,
+ cancelClass: 'raty-cancel',
+ cancelHint: 'Cancel this rating!',
+ cancelOff: 'cancel-off.png',
+ cancelOn: 'cancel-on.png',
+ cancelPlace: 'left',
+ click: undefined,
+ half: false,
+ halfShow: true,
+ hints: ['bad', 'poor', 'regular', 'good', 'gorgeous'],
+ iconRange: undefined,
+ mouseout: undefined,
+ mouseover: undefined,
+ noRatedMsg: 'Not rated yet!',
+ number: 5,
+ numberMax: 20,
+ path: undefined,
+ precision: false,
+ readOnly: false,
+ round: { down: .25, full: .6, up: .76 },
+ score: undefined,
+ scoreName: 'score',
+ single: false,
+ space: true,
+ starHalf: 'star-half.png',
+ starOff: 'star-off.png',
+ starOn: 'star-on.png',
+ target: undefined,
+ targetFormat: '{score}',
+ targetKeep: false,
+ targetScore: undefined,
+ targetText: '',
+ targetType: 'hint',
+ starType: 'img',
+});
+
+var score: number = $element.raty('score');
+$element.raty('score', 4);
+$element.raty('click', 2);
+$element.raty('readOnly', true);
+$element.raty('cancel', true);
+$element.raty('reload');
+$element.raty('set', { space: false });
+$element.raty('destroy');
+$element.raty('move', 3);
diff --git a/raty/raty.d.ts b/raty/raty.d.ts
new file mode 100644
index 0000000000..bb02d94752
--- /dev/null
+++ b/raty/raty.d.ts
@@ -0,0 +1,64 @@
+// Type definitions for jQuery.raty 2.7.0
+// Project: https://github.com/wbotelhos/raty
+// Definitions by: Matt Wheatley
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+interface JQuery {
+ raty(): JQuery;
+ raty(options: JQueryRatyOptions): JQuery;
+ raty(method: string, parameter: any): any;
+ raty(method: 'score'): number;
+ raty(method: 'score', score: number): void;
+ raty(method: 'click', star: number): void;
+ raty(method: 'readonly', on: boolean): void;
+ raty(method: 'cancel', on: boolean): void;
+ raty(method: 'reload'): void;
+ raty(method: 'set', options: JQueryRatyOptions): void;
+ raty(method: 'destroy'): JQuery;
+ raty(method: 'move', number: number): void;
+}
+
+interface JQueryRatyOptions {
+ cancel?: boolean,
+ cancelClass?: string,
+ cancelHint?: string,
+ cancelOff?: string,
+ cancelOn?: string,
+ cancelPlace?: string,
+ click?: (score: number, event: JQueryEventObject) => void,
+ half?: boolean,
+ halfShow?: boolean,
+ hints?: string[],
+ iconRange?: any[][],
+ mouseout?: (score: number, event: JQueryEventObject) => void,
+ mouseover?: (score: number, event: JQueryEventObject) => void,
+ noRatedMsg?: string,
+ number?: number,
+ numberMax?: number,
+ path?: string,
+ precision?: boolean,
+ readOnly?: boolean,
+ round?: JQueryRatyRoundingOptions,
+ score?: number,
+ scoreName?: string,
+ single?: boolean,
+ space?: boolean,
+ starHalf?: string,
+ starOff?: string,
+ starOn?: string,
+ target?: string,
+ targetFormat?: string,
+ targetKeep?: boolean,
+ targetScore?: string,
+ targetText?: string,
+ targetType?: string,
+ starType?: string,
+}
+
+interface JQueryRatyRoundingOptions {
+ down: number,
+ full: number,
+ up: number,
+}