closure-ts 
Generates TypeScript declaration files (.d.ts) from Closure Library JSDoc annotations.
The result is closure-library.d.ts.
Example
From this JavaScript code with annotations,
goog.string.truncate = function(str, chars, opt_protectEscapedCharacters) {
};
closure-ts generates this declaration file (.d.ts).
declare module goog.string {
function truncate(str: string, chars: number, opt_protectEscapedCharacters?: boolean): string;
}
Usage
$ closurets some-jsdoced-code.js
$ ls
some-jsdoced-code.d.ts
some-jsdoced-code.js
Project status
Just PoC
Implemented
- Variable with
@type
- Function with
@param
and @return
- Namespace to TypeScript
module
- Classes (
@constructor
and @extends
)
- Enum with
@enum
to TypeScrip type alias and variables
- Convert
*
to any
- Generic type like
Array<number>
- Generic classes and function with
@template
- Union type
- Record type
- Rest parameters in
@param
and FunctionType
- Optional parameters
- Exclude
@private
definitions
@typedef
- Convert
Object.<string, Foo>
to {[index: string]: Foo}
- Ignore features TypeScript doesn't have
@this
, new
of function type
- Nullable, Non-Nullable
TODO
@lends
- Dependencies of Closure Library files
- One stop build system with Grunt or Gulp