The Viewer API definitions do not compile because of missing imports and
anonymous objects are typed as `Object`. These issues were not caught
during CI because the test project was not compiling anything from the
Viewer API.
As an example of the first problem:
```
/**
 * @implements MyInterface
 */
export class MyClass {
    ...
}
```
will generate a broken definition that doesn’t import MyInterface:
```
/**
 * @implements MyInterface
 */
export class MyClass implements MyInterface {
    ...
}
```
This can be fixed by adding a typedef jsdoc to specify the import:
```
/** @typedef {import("./otherFile").MyInterface} MyInterface */
```
See https://github.com/jsdoc/jsdoc/issues/1537 and
https://github.com/microsoft/TypeScript/issues/22160 for more details.
As an example of the second problem:
```
/**
 * Gets the size of the specified page, converted from PDF units to inches.
 * @param {Object} An Object containing the properties: {Array} `view`,
 *   {number} `userUnit`, and {number} `rotate`.
 */
function getPageSizeInches({ view, userUnit, rotate }) {
    ...
}
```
generates the broken definition:
```
function getPageSizeInches({ view, userUnit, rotate }: Object) {
    ...
}
```
The jsdoc should specify the type of each nested property:
```
/**
 * Gets the size of the specified page, converted from PDF units to inches.
 * @param {Object} options An object containing the properties: {Array} `view`,
 *   {number} `userUnit`, and {number} `rotate`.
 * @param {number[]} options.view
 * @param {number} options.userUnit
 * @param {number} options.rotate
 */
```
		
	
			
		
			
				
	
	
		
			2 lines
		
	
	
		
			54 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			2 lines
		
	
	
		
			54 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
export * from "../../types/web/pdf_viewer.component";
 |