diff --git a/roslib/index.d.ts b/roslib/index.d.ts
index 923bcb6396..368c190bd6 100644
--- a/roslib/index.d.ts
+++ b/roslib/index.d.ts
@@ -1,6 +1,6 @@
-// Type definitions for roslib.js 1.9
+// Type definitions for roslib.js 0.18.0
// Project: http://wiki.ros.org/roslibjs
-// Definitions by: Stefan Profanter
+// Definitions by: Stefan Profanter , Cooper Benson
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -350,7 +350,7 @@ declare namespace ROSLIB {
* * provided and other listeners are registered the topic won't
* * unsubscribe, just stop emitting to the passed listener
*/
- unsubscribe(callback?:() => void):void;
+ unsubscribe(callback?:(callback:(message:Message) => void) => void):void;
/**
* Registers as a publisher for the topic.
diff --git a/roslib/roslib-tests.ts b/roslib/roslib-tests.ts
index b67578536a..36b505ea12 100644
--- a/roslib/roslib-tests.ts
+++ b/roslib/roslib-tests.ts
@@ -48,10 +48,13 @@ var listener = new ROSLIB.Topic({
messageType: 'std_msgs/String'
});
-listener.subscribe(function (message:any) {
- console.log('Received message on ' + listener.name + ': ' + message.data);
+let subscription_callback = function (message:ROSLIB.Message) {
+ console.log('Received message on ' + listener.name + ': ' + message);
listener.unsubscribe();
-});
+}
+
+listener.subscribe(subscription_callback);
+listener.unsubscribe(subscription_callback);
// Calling a service
// -----------------