chore: Use Typescript to lint JSDoc annotations (#986)

This patch starts using typescript to lint JSDoc annotations.

Note: this uses typescript's bleeding edge. We should migrate to stable once
it has all the necessary bugfixes.

References #65.
This commit is contained in:
JoelEinbinder
2017-10-09 22:31:40 -07:00
committed by Andrey Lushnikov
parent 7b5d7ddac2
commit e59172de83
22 changed files with 198 additions and 131 deletions

View File

@@ -19,14 +19,14 @@ const debugError = require('debug')(`puppeteer:error`);
let apiCoverage = null;
class Helper {
/**
* @param {function()|string} fun
* @param {Function|string} fun
* @param {!Array<*>} args
* @return {string}
*/
static evaluationString(fun, ...args) {
if (Helper.isString(fun)) {
console.assert(args.length === 0, 'Cannot evaluate a string with arguments');
return fun;
return /** @type {string} */ (fun);
}
return `(${fun})(${args.map(serializeArgument).join(',')})`;
@@ -60,9 +60,8 @@ class Helper {
}
/**
* @param {!Session} client
* @param {!Object} remoteObject
* @return {!Promise<!Object>}
* @return {*}
*/
static valueFromRemoteObject(remoteObject) {
console.assert(!remoteObject.objectId, 'Cannot extract value when objectId is given');
@@ -84,7 +83,7 @@ class Helper {
}
/**
* @param {!Session} client
* @param {!Puppeteer.Session} client
* @param {!Object} remoteObject
*/
static async releaseObject(client, remoteObject) {
@@ -165,10 +164,10 @@ class Helper {
}
/**
* @param {!EventEmitter} emitter
* @param {!NodeJS.EventEmitter} emitter
* @param {string} eventName
* @param {function(?)} handler
* @return {{emitter: !EventEmitter, eventName: string, handler: function(?)}}
* @return {{emitter: !NodeJS.EventEmitter, eventName: string, handler: function(?)}}
*/
static addEventListener(emitter, eventName, handler) {
emitter.on(eventName, handler);
@@ -176,7 +175,7 @@ class Helper {
}
/**
* @param {!Array<{emitter: !EventEmitter, eventName: string, handler: function(?)}>}
* @param {!Array<{emitter: !NodeJS.EventEmitter, eventName: string, handler: function(?)}>} listeners
*/
static removeEventListeners(listeners) {
for (const listener of listeners)