Compare commits

...

62 Commits

Author SHA1 Message Date
Sebastian Lenz
5b0eb9f43f Update to version 0.3.8 2015-07-24 16:13:13 +02:00
Sebastian Lenz
36b79aa8f3 Enabled experimental decorators for test cases 2015-07-24 16:12:15 +02:00
Sebastian Lenz
5f4e501c59 Update to TypeScript 1.5.3, see #122 2015-07-24 16:09:30 +02:00
Sebastian Lenz
464cd1e869 Merge pull request #121 from bd82/master
Some improvements to development workflow:
2015-07-24 14:09:53 +02:00
Shahar Soel
5eaa50f22f Some improvements to development workflow:
* Explicitly declare dependency to mocha.
  This helps avoid depending on a globaly installed mocha package
  As npm scripts (npm test) add node_modules/.bin/ to their PATH.

* A single Grunt task to compile/create test artifacts/run tests/create
  coverage report (created in ./coverage dir).
2015-07-24 14:29:49 +03:00
Sebastian Lenz
d9a2c07119 Update test specs with different type parameter names 2015-07-23 12:25:51 +02:00
Sebastian Lenz
cdd39d8bef Don't check type parameter names for equality, they might be different 2015-07-23 12:25:33 +02:00
Sebastian Lenz
81d8475606 Update to version 0.3.7 2015-07-23 12:19:50 +02:00
Sebastian Lenz
3bdd5058ea Add test case for interface implementations with generics, see #119 2015-07-23 12:18:20 +02:00
Sebastian Lenz
dbac85e303 Bugfix: TypeParameter equality does not check for unconstrained types, see #119 2015-07-22 00:11:17 +02:00
Sebastian Lenz
cc757e034d Accept empty output directories, see #118 2015-07-21 23:57:09 +02:00
Sebastian Lenz
4b29db856a Update to version 0.3.6 2015-07-18 13:26:12 +02:00
Sebastian Lenz
9516db3b42 Update dependencies 2015-07-18 13:24:43 +02:00
Sebastian Lenz
c30ac1fc94 Allow bypassing compiler errors, see #116 2015-07-18 13:14:19 +02:00
Sebastian Lenz
cdb7bc92fe Prevent the converter from looping anonymous return types, see #107 2015-07-17 17:59:58 +02:00
Sebastian Lenz
a8324d1c9f Add test case for looped returning anonymous objects 2015-07-17 17:58:57 +02:00
Sebastian Lenz
a23c0b64c8 Recompiled typedoc.js 2015-07-17 17:36:02 +02:00
Sebastian Lenz
88c219686c Merge branch 'master' of github.com:sebastian-lenz/typedoc 2015-07-17 17:35:33 +02:00
Sebastian Lenz
5a75713391 Bugfix: Don't break if a class does not implement all interface members, see #98 2015-07-17 17:34:11 +02:00
Sebastian Lenz
e7d99e57e5 Merge pull request #115 from darrylring/master
Display readme in index.html even if entryPoint is specified, see #114
2015-07-17 17:28:24 +02:00
Darryl Ring
a83cb1b209 Display readme in index.html even if entryPoint is specified, see #114 2015-07-15 15:25:39 -07:00
Sebastian Lenz
9d278bbed0 Exit with an error code if something went south, see #110 2015-07-08 15:44:30 +02:00
Sebastian Lenz
93a9ffd72e Exit with an error code if something went south, see #110 2015-07-08 12:45:50 +02:00
Sebastian Lenz
fa6b801cbc Add some verbose information 2015-07-08 12:31:47 +02:00
Sebastian Lenz
e8035d4bf1 Remove BOM from test specs 2015-07-07 10:17:15 +02:00
Sebastian Lenz
5011b37bcb Remove BOM from rendered documents 2015-07-07 10:12:40 +02:00
Sebastian Lenz
c6351faffc Remove trailing "-" in param comments, see #102 2015-07-06 16:01:37 +02:00
Sebastian Lenz
7afa700638 Move to version 0.3.5 2015-07-06 10:58:28 +02:00
Sebastian Lenz
a6a157c949 Compile TypeDoc against TypeScript 1.5.0-beta, see #95 2015-07-06 10:06:44 +02:00
Sebastian Lenz
0eef403c29 Add test case for decorator support 2015-05-16 16:38:54 +02:00
Sebastian Lenz
a0faec0523 Add basic decorator support, see #97 2015-05-16 16:38:37 +02:00
Sebastian Lenz
89f6dd4213 Add test case for interface implementations and inheritdoc tag 2015-05-15 18:13:21 +02:00
Sebastian Lenz
9792b65c27 Add inheritdoc support for implementations of interfaces, resolves #78 2015-05-15 18:10:38 +02:00
Sebastian Lenz
e30da15523 Add isSignature template helper 2015-05-15 17:57:09 +02:00
Sebastian Lenz
4f18e75cf7 Add ImplementsPlugin 2015-05-15 17:56:56 +02:00
Sebastian Lenz
a72e126daa Add equal functions to type models 2015-05-15 17:56:36 +02:00
Sebastian Lenz
611b615e4e Add TypeScript 1.5 test to basix example 2015-05-14 19:51:40 +02:00
Sebastian Lenz
d5f161e29d Update destructuring test and specs 2015-05-14 19:51:02 +02:00
Sebastian Lenz
40d133f08b Add basic support for destructuring parameters 2015-05-14 19:47:29 +02:00
Sebastian Lenz
31ce922f97 Add basic support for destructuring variables 2015-05-14 18:23:49 +02:00
Sebastian Lenz
5197c60929 Bugfix: Don't inherit exported state in modules 2015-05-14 17:44:04 +02:00
Sebastian Lenz
73d6ab38f7 Make TypeDoc compatible with TypeScript 1.5, see #95 2015-05-09 23:16:26 +02:00
Sebastian Lenz
0e37810e13 Recompiled 2015-04-30 01:17:12 +02:00
Sebastian Lenz
c288c9bdb4 Add an option to ignore not exported symbols, see #87 2015-04-30 01:16:30 +02:00
Sebastian Lenz
68476129c4 Update version number 2015-04-29 23:58:39 +02:00
Sebastian Lenz
bf49b6304c Prevent classes, interfaces and modules from becoming static 2015-04-29 23:31:12 +02:00
Sebastian Lenz
18e53ee06f Disable template leafs 2015-04-29 23:29:07 +02:00
Sebastian Lenz
ec99849dc0 Update test specs to reflect new readme 2015-04-29 23:28:18 +02:00
Sebastian Lenz
69d8edd039 Bugfix: Prevent infinite loops when inheriting classes, see #93 2015-04-29 23:10:32 +02:00
Sebastian Lenz
3b09bec383 Remove "Globals" from navigation if entry point is specified 2015-04-25 18:32:12 +02:00
Sebastian Lenz
1d742ba6a0 Add entry point options, resolves #90 2015-04-25 18:10:09 +02:00
Sebastian Lenz
350e725af5 Rebuild test specs 2015-04-25 18:09:33 +02:00
Sebastian Lenz
17ebbb3dc2 Bugfix: getChildByName never returns anything 2015-04-25 18:09:19 +02:00
Sebastian Lenz
5c72c50735 Remove error handler, doesn't work as expected, see #75 2015-04-25 16:28:36 +02:00
Sebastian Lenz
cde3806591 Add generic inheritance with type parameter test 2015-04-25 15:45:00 +02:00
Sebastian Lenz
6f7bec1f1e Add member with generic array parameter test 2015-04-25 15:44:05 +02:00
Sebastian Lenz
c01ee0c8f3 Add function with generic array parameter test 2015-04-25 15:41:02 +02:00
Sebastian Lenz
7720e9c5a2 Update specs, new template renders "[]" with additional span 2015-04-25 15:39:55 +02:00
Sebastian Lenz
890df9039b Clone type parameters when pulling from context 2015-04-25 15:37:36 +02:00
Sebastian Lenz
f8621c9c4d Add clone method to types 2015-04-25 15:36:56 +02:00
Sebastian Lenz
1f76adf773 Add test for {@link ...} tags 2015-04-25 14:48:03 +02:00
Sebastian Lenz
0fa156306b Add support for {@link ...} tags, see #79 2015-04-25 14:44:29 +02:00
102 changed files with 8946 additions and 2169 deletions

3
.gitignore vendored
View File

@@ -13,4 +13,5 @@
/examples/plottable/src/
/examples/doppio/src/
/node_modules/
/typescript/
/typescript/
/coverage/

View File

@@ -1,6 +1,3 @@
language: node_js
node_js:
- "0.10"
before_install:
- npm install -g mocha

View File

@@ -91,6 +91,8 @@ in order to change the behaviour of TypeDoc.
Set the Google Analytics tracking ID and activate tracking code.
* `--gaSite <site>`<br>
Set the site name for Google Analytics. Defaults to `auto`
* `--entryPoint <fully.qualified.name>`<br>
Specifies the fully qualified name of the root symbol. Defaults to global namespace.
#### Content
* `--includes <path/to/includes>`<br>

1062
bin/typedoc.d.ts vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -202,6 +202,10 @@ export class SubClassA extends BaseClass implements IPrintNameInterface
*/
public print(value:string):void { }
/**
* @inheritdoc
*/
public printName():void {
this.print(this.getName());
}

View File

@@ -179,3 +179,13 @@ export function createSomething() {
doAnotherThing: () => {}
};
}
/**
* See {@linkcode INameInterface} and [INameInterface's name property]{@link INameInterface.name}.
* Also, check out {@link http://www.google.com|Google} and
* {@link https://github.com GitHub}.
*
* Taken from http://usejsdoc.org/tags-inline-link.html.
*/
export function functionWithDocLink():void { }

View File

@@ -0,0 +1,26 @@
/**
* Destructuring objects.
*/
var {destructObjectA, destructObjectB, destructObjectC} = {destructObjectA:0, destructObjectB:'string', destructObjectC:0};
/**
* Destructuring arrays.
*/
var [destructArrayA, destructArrayB, destructArrayC = 10] = [0, 'string', 0];
/**
* Array Destructuring with rest
*/
var [destructArrayWithRestA, destructArrayWithRestB, ...destructArrayWithRest] = [1, 2, 3, 4];
/**
* Array Destructuring with ignores
*/
var [destructArrayWithIgnoresA, , ...destructArrayWithIgnoresRest] = [1, 2, 3, 4];
/**
* Destructuring function parameters.
*/
function drawText({text = "", location:[x, y] = [0, 0], bold = false}) {
}

View File

@@ -56,6 +56,14 @@ module.exports = function(grunt)
files: ['src/**/*.ts'],
tasks: ['ts:typedoc', 'string-replace:version']
}
},
mocha_istanbul: {
coverage: {
src: 'test',
options: {
mask: '*.js'
}
}
}
});
@@ -64,8 +72,10 @@ module.exports = function(grunt)
grunt.loadNpmTasks('grunt-string-replace');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-ts');
grunt.loadNpmTasks('grunt-mocha-istanbul');
grunt.registerTask('default', ['ts:typedoc', 'string-replace:version']);
grunt.registerTask('build_and_test', ['default', 'specs', 'mocha_istanbul:coverage']);
grunt.registerTask('specs', ['clean:specsBefore', 'build-specs', 'clean:specsAfter']);
grunt.registerTask('build-specs', function() {
@@ -78,7 +88,8 @@ module.exports = function(grunt)
mode: 'Modules',
target: 'ES5',
module: 'CommonJS',
noLib: true
noLib: true,
experimentalDecorators: true
});
FS.readdirSync(Path.join(base)).forEach(function(directory) {
@@ -96,6 +107,9 @@ module.exports = function(grunt)
var src = Path.join(__dirname, 'examples', 'basic', 'src');
var out = Path.join(__dirname, 'test', 'renderer', 'specs');
TypeDoc.FS.removeSync(out);
app.generateDocs(app.expandInputFiles([src]), out);
TypeDoc.FS.removeSync(Path.join(out, 'assets'));
});
};

View File

@@ -1,7 +1,7 @@
{
"name": "typedoc",
"description": "Create api documentations for typescript projects.",
"version": "0.3.3",
"version": "0.3.8",
"homepage": "http://typedoc.io",
"bin": {
"typedoc": "bin/typedoc"
@@ -28,22 +28,25 @@
"node": ">=0.10.0"
},
"dependencies": {
"typescript": "1.4.x",
"typedoc-default-themes": "^0.3.2",
"fs-extra": "^0.16.5",
"minimatch": "^2.0.4",
"handlebars": "3.0.0",
"typescript": "1.5.3",
"typedoc-default-themes": "0.3.4",
"fs-extra": "^0.22.1",
"minimatch": "^2.0.10",
"handlebars": "3.0.3",
"marked": "^0.3.3",
"highlight.js": "^8.4.0",
"shelljs": "^0.4.0",
"highlight.js": "^8.6.0",
"shelljs": "^0.5.1",
"progress": "^1.1.8"
},
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-watch": "~0.6.1",
"grunt-string-replace": "^1.0.0",
"grunt-ts": "^3.0.0"
"grunt-string-replace": "^1.2.0",
"grunt-ts": "^4.2.0",
"grunt-mocha-istanbul": "^2.4.0",
"istanbul": "^0.3.17",
"mocha": "^2.2.5"
},
"files": [
"bin",

File diff suppressed because it is too large Load Diff

View File

@@ -152,21 +152,31 @@ module td
this.collectParameters(parser);
if (!parser.loadOptionFileFromArguments() || !parser.parseArguments()) {
process.exit(1);
return;
}
if (this.options.version) {
ts.sys.write(this.toString());
} else if (parser.inputFiles.length === 0 || this.options.help) {
} else if (this.options.help) {
ts.sys.write(parser.toString());
} else if (parser.inputFiles.length === 0) {
ts.sys.write(parser.toString());
process.exit(1);
} else if (!this.options.out && !this.options.json) {
this.logger.error("You must either specify the 'out' or 'json' option.");
process.exit(1);
} else {
var src = this.expandInputFiles(parser.inputFiles);
var project = this.convert(src);
if (project) {
if (this.options.out) this.generateDocs(project, this.options.out);
if (this.options.json) this.generateJson(project, this.options.json);
if (this.logger.hasErrors()) {
process.exit(3);
}
} else {
process.exit(2);
}
}
}
@@ -332,7 +342,12 @@ module td
var result = this.converter.convert(src);
if (result.errors && result.errors.length) {
this.logger.diagnostics(result.errors);
return null;
if (this.options.ignoreCompilerErrors) {
this.logger.resetErrors();
return result.project;
} else {
return null;
}
} else {
return result.project;
}

View File

@@ -4,6 +4,7 @@ module td
* List of known log levels. Used to specify the urgency of a log message.
*/
export enum LogLevel {
Verbose,
Info,
Warn,
Error,
@@ -40,6 +41,14 @@ module td
}
/**
* Reset the error counter.
*/
public resetErrors() {
this.errorCount = 0;
}
/**
* Log the given message.
*
@@ -73,6 +82,17 @@ module td
}
/**
* Log the given verbose message.
*
* @param text The message that should be logged.
* @param args The arguments that should be printed into the given message.
*/
public verbose(text:string, ...args:string[]) {
this.log(Util.format.apply(this, arguments), LogLevel.Verbose);
}
/**
* Log the given warning.
*
@@ -129,8 +149,8 @@ module td
public diagnostic(diagnostic:ts.Diagnostic) {
var output;
if (diagnostic.file) {
output = diagnostic.file.filename;
output += '(' + diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start).line + ')';
output = diagnostic.file.fileName;
output += '(' + ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start).line + ')';
output += ts.sys.newLine + ' ' + diagnostic.messageText;
} else {
output = diagnostic.messageText;

View File

@@ -32,11 +32,21 @@ declare module td
*/
json?:string;
/**
* Should TypeDoc generate documentation pages even after the compiler has returned errors?
*/
ignoreCompilerErrors?:boolean;
/**
* Does the user want to display the help message?
*/
help?:boolean;
/**
* Should we display some extra debug information?
*/
verbose?:boolean;
/**
* Does the user want to know the version number?
*/
@@ -255,11 +265,19 @@ module td
name: 'exclude',
help: 'Define a pattern for excluded files when specifying paths.',
type: ParameterType.String
},{
name: 'ignoreCompilerErrors',
help: 'Should TypeDoc generate documentation pages even after the compiler has returned errors?',
type: ParameterType.Boolean
},{
name: 'plugin',
help: 'Specify the npm plugins that should be loaded. Omit to load all installed plugins, set to \'none\' to load no plugins.',
type: ParameterType.String,
isArray: true
},{
name: 'verbose',
help: 'Should TypeDoc print additional debug information?',
type: ParameterType.Boolean
},{
name: 'logger',
help: 'Specify the logger that should be used, \'none\' or \'console\'',
@@ -310,7 +328,7 @@ module td
param.map = option.type;
if (option.error) {
var error = ts.createCompilerDiagnostic(option.error);
param.mapError = error.messageText;
param.mapError = ts.flattenDiagnosticMessageText(error.messageText, ', ');
}
}

View File

@@ -20,6 +20,11 @@ module td.converter
*/
checker:ts.TypeChecker;
/**
* The program that is currently processed.
*/
program:ts.Program;
/**
* The project that is currently processed.
*/
@@ -60,11 +65,21 @@ module td.converter
*/
inheritParent:ts.Node;
/**
* List symbol ids of inherited children already visited while inheriting.
*/
inheritedChildren:number[];
/**
* The names of the children of the scope before inheritance has been started.
*/
inherited:string[];
/**
* A list of parent nodes that have been passed to the visit function.
*/
visitStack:ts.Node[];
/**
* Next free symbol id used by [[getSymbolID]].
*/
@@ -84,10 +99,12 @@ module td.converter
* @param fileNames A list of all files that have been passed to the TypeScript compiler.
* @param checker The TypeChecker instance returned by the TypeScript compiler.
*/
constructor(converter:Converter, fileNames:string[], checker:ts.TypeChecker) {
constructor(converter:Converter, fileNames:string[], checker:ts.TypeChecker, program:ts.Program) {
this.converter = converter;
this.fileNames = fileNames;
this.checker = checker;
this.program = program;
this.visitStack = [];
var project = new models.ProjectReflection(this.getOptions().name);
this.project = project;
@@ -176,7 +193,7 @@ module td.converter
registerReflection(reflection:models.Reflection, node:ts.Node, symbol?:ts.Symbol) {
this.project.reflections[reflection.id] = reflection;
var id = this.getSymbolID(symbol ? symbol : node.symbol);
var id = this.getSymbolID(symbol ? symbol : (node ? node.symbol : null));
if (!this.isInherit && id && !this.project.symbolMapping[id]) {
this.project.symbolMapping[id] = reflection.id;
}
@@ -206,9 +223,9 @@ module td.converter
withSourceFile(node:ts.SourceFile, callback:Function) {
var options = this.converter.application.options;
var externalPattern = this.externalPattern;
var isExternal = this.fileNames.indexOf(node.filename) == -1;
var isExternal = this.fileNames.indexOf(node.fileName) == -1;
if (externalPattern) {
isExternal = isExternal || externalPattern.match(node.filename);
isExternal = isExternal || externalPattern.match(node.fileName);
}
if (isExternal && options.excludeExternals) {
@@ -218,7 +235,7 @@ module td.converter
var isDeclaration = ts.isDeclarationFile(node);
if (isDeclaration) {
var lib = this.converter.getDefaultLib();
var isLib = node.filename.substr(-lib.length) == lib;
var isLib = node.fileName.substr(-lib.length) == lib;
if (!options.includeDeclarations || isLib) {
return;
}
@@ -291,6 +308,7 @@ module td.converter
var oldInherited = this.inherited;
var oldInheritParent = this.inheritParent;
var oldTypeArguments = this.typeArguments;
this.isInherit = true;
this.inheritParent = baseNode;
this.inherited = [];
@@ -300,6 +318,16 @@ module td.converter
throw new Error('Expected container reflection');
}
if (baseNode.symbol) {
var id = this.getSymbolID(baseNode.symbol);
if (this.inheritedChildren && this.inheritedChildren.indexOf(id) != -1) {
return target;
} else {
this.inheritedChildren = this.inheritedChildren || [];
this.inheritedChildren.push(id);
}
}
if (target.children) {
this.inherited = target.children.map((c) => c.name);
} else {
@@ -318,6 +346,11 @@ module td.converter
this.inherited = oldInherited;
this.inheritParent = oldInheritParent;
this.typeArguments = oldTypeArguments;
if (!this.isInherit) {
delete this.inheritedChildren;
}
return target;
}

View File

@@ -28,6 +28,11 @@ declare module td
* Should externally resolved TypeScript files be ignored?
*/
excludeExternals?:boolean;
/**
* Should symbols that are not marked as being exported be ignored?
*/
excludeNotExported?:boolean;
}
}
@@ -260,6 +265,10 @@ module td.converter
name: "excludeExternals",
help: 'Prevent externally resolved TypeScript files from being documented.',
type: ParameterType.Boolean
},{
name: "excludeNotExported",
help: 'Prevent symbols that are not exported from being documented.',
type: ParameterType.Boolean
}]);
}
@@ -270,13 +279,21 @@ module td.converter
* @param fileNames Array of the file names that should be compiled.
*/
convert(fileNames:string[]):IConverterResult {
if (this.application.options.verbose) {
this.application.logger.verbose('\n\x1b[32mStarting conversion\x1b[0m\n\nInput files:');
for (var i = 0, c = fileNames.length; i < c; i++) {
this.application.logger.verbose(' - ' + fileNames[i]);
}
this.application.logger.verbose('\n');
}
for (var i = 0, c = fileNames.length; i < c; i++) {
fileNames[i] = ts.normalizePath(ts.normalizeSlashes(fileNames[i]));
}
var program = ts.createProgram(fileNames, this.application.compilerOptions, this);
var checker = program.getTypeChecker(true);
var context = new Context(this, fileNames, checker);
var checker = program.getTypeChecker();
var context = new Context(this, fileNames, checker, program);
this.dispatch(Converter.EVENT_BEGIN, context);
@@ -285,6 +302,10 @@ module td.converter
this.dispatch(Converter.EVENT_END, context);
if (this.application.options.verbose) {
this.application.logger.verbose('\n\x1b[32mFinished conversion\x1b[0m\n');
}
return {
errors: errors,
project: project
@@ -299,14 +320,24 @@ module td.converter
* @returns An array containing all errors generated by the TypeScript compiler.
*/
private compile(context:Context):ts.Diagnostic[] {
var checker = context.checker;
var program = checker.getProgram();
var program = context.program;
program.getSourceFiles().forEach((sourceFile) => {
visit(context, sourceFile);
});
return program.getDiagnostics().concat(checker.getDiagnostics());
// First get any syntactic errors.
var diagnostics = program.getSyntacticDiagnostics();
if (diagnostics.length === 0) {
diagnostics = program.getGlobalDiagnostics();
if (diagnostics.length === 0) {
return program.getSemanticDiagnostics();
} else {
return diagnostics;
}
} else {
return diagnostics;
}
}
@@ -322,6 +353,10 @@ module td.converter
for (var id in project.reflections) {
if (!project.reflections.hasOwnProperty(id)) continue;
if (this.application.options.verbose) {
this.application.logger.verbose('Resolving %s', project.reflections[id].getFullName());
}
this.dispatch(Converter.EVENT_RESOLVE, context, project.reflections[id]);
}
@@ -367,7 +402,7 @@ module td.converter
text = "";
}
return text !== undefined ? ts.createSourceFile(filename, text, languageVersion, /*version:*/ "0") : undefined;
return text !== undefined ? ts.createSourceFile(filename, text, languageVersion) : undefined;
}
@@ -378,7 +413,7 @@ module td.converter
*
* @returns The full path of the default library.
*/
getDefaultLibFilename():string {
getDefaultLibFileName(options: ts.CompilerOptions):string {
var lib = this.getDefaultLib();
var path = ts.getDirectoryPath(ts.normalizePath(td.tsPath));
return Path.join(path, 'bin', lib);

View File

@@ -43,101 +43,124 @@ module td.converter
* @return The resulting reflection or NULL.
*/
export function visit(context:Context, node:ts.Node):models.Reflection {
try {
switch (node.kind) {
case ts.SyntaxKind.SourceFile:
return visitSourceFile(context, <ts.SourceFile>node);
case ts.SyntaxKind.ClassDeclaration:
return visitClassDeclaration(context, <ts.ClassDeclaration>node);
case ts.SyntaxKind.InterfaceDeclaration:
return visitInterfaceDeclaration(context, <ts.InterfaceDeclaration>node);
case ts.SyntaxKind.ModuleDeclaration:
return visitModuleDeclaration(context, <ts.ModuleDeclaration>node);
case ts.SyntaxKind.VariableStatement:
return visitVariableStatement(context, <ts.VariableStatement>node);
case ts.SyntaxKind.Property:
case ts.SyntaxKind.PropertyAssignment:
case ts.SyntaxKind.VariableDeclaration:
return visitVariableDeclaration(context, <ts.VariableDeclaration>node);
case ts.SyntaxKind.EnumDeclaration:
return visitEnumDeclaration(context, <ts.EnumDeclaration>node);
case ts.SyntaxKind.EnumMember:
return visitEnumMember(context, <ts.EnumMember>node);
case ts.SyntaxKind.Constructor:
case ts.SyntaxKind.ConstructSignature:
return visitConstructor(context, <ts.ConstructorDeclaration>node);
case ts.SyntaxKind.Method:
case ts.SyntaxKind.FunctionDeclaration:
return visitFunctionDeclaration(context, <ts.MethodDeclaration>node);
case ts.SyntaxKind.GetAccessor:
return visitGetAccessorDeclaration(context, <ts.SignatureDeclaration>node);
case ts.SyntaxKind.SetAccessor:
return visitSetAccessorDeclaration(context, <ts.SignatureDeclaration>node);
case ts.SyntaxKind.CallSignature:
case ts.SyntaxKind.FunctionType:
return visitCallSignatureDeclaration(context, <ts.SignatureDeclaration>node);
case ts.SyntaxKind.IndexSignature:
return visitIndexSignatureDeclaration(context, <ts.SignatureDeclaration>node);
case ts.SyntaxKind.Block:
case ts.SyntaxKind.ModuleBlock:
return visitBlock(context, <ts.Block>node);
case ts.SyntaxKind.ObjectLiteralExpression:
return visitObjectLiteral(context, <ts.ObjectLiteralExpression>node);
case ts.SyntaxKind.TypeLiteral:
return visitTypeLiteral(context, <ts.TypeLiteralNode>node);
case ts.SyntaxKind.ExportAssignment:
return visitExportAssignment(context, <ts.ExportAssignment>node);
case ts.SyntaxKind.TypeAliasDeclaration:
return visitTypeAliasDeclaration(context, <ts.TypeAliasDeclaration>node);
default:
return null;
}
} catch (error) {
var msg = [];
msg.push('An error occurred while creating reflections for the current project.');
msg.push('Please report this error at https://github.com/sebastian-lenz/typedoc/issues');
msg.push('including the following details:');
msg.push('');
msg.push('>>> BEGIN OF ERROR DESCRIPTION');
msg.push('');
try {
var sourceFile = ts.getSourceFileOfNode(node);
var line = sourceFile.getLineAndCharacterFromPosition(node.pos);
if (node.symbol) {
msg.push(Util.format(
'The error occurred while converting `%s` in `%s` around line %s:',
context.checker.getFullyQualifiedName(node.symbol),
ts.getBaseFilename(sourceFile.filename), line.line));
} else {
msg.push(Util.format(
'The error occurred while converting `%s` around line %s:',
ts.getBaseFilename(sourceFile.filename), line.line));
}
var lineData, lines = sourceFile.getLineStarts();
var lineCount = lines.length - 1;
var min = Math.max(line.line - 2, 0);
var max = Math.min(line.line + 25, lineCount);
msg.push('', '```');
for (var index = min; index <= max; index++) {
if (index == lineCount) {
lineData = sourceFile.text.substring(lines[index]);
} else {
lineData = sourceFile.text.substring(lines[index], lines[index + 1] - 1);
}
msg.push((index == line.line - 1 ? '@ ' : ' ') + lineData);
}
msg.push('```');
} catch (sourceError) { }
msg.push('', '```', error.stack, '```');
msg.push('', '<<< END OF ERROR DESCRIPTION', '', '');
context.getLogger().error(msg.join('\n'));
if (context.visitStack.indexOf(node) != -1) {
return null;
}
var oldVisitStack = context.visitStack;
context.visitStack = oldVisitStack.slice();
context.visitStack.push(node);
if (context.getOptions().verbose) {
var file = ts.getSourceFileOfNode(node);
var pos = ts.getLineAndCharacterOfPosition(file, node.pos);
if (node.symbol) {
context.getLogger().verbose(
'Visiting \x1b[34m%s\x1b[0m\n in %s (%s:%s)',
context.checker.getFullyQualifiedName(node.symbol),
file.fileName, pos.line.toString(), pos.character.toString()
);
} else {
context.getLogger().verbose(
'Visiting node of kind %s in %s (%s:%s)',
node.kind.toString(),
file.fileName, pos.line.toString(), pos.character.toString()
);
}
}
var result:models.Reflection;
switch (node.kind) {
case ts.SyntaxKind.SourceFile:
result = visitSourceFile(context, <ts.SourceFile>node);
break;
case ts.SyntaxKind.ClassExpression:
case ts.SyntaxKind.ClassDeclaration:
result = visitClassDeclaration(context, <ts.ClassDeclaration>node);
break;
case ts.SyntaxKind.InterfaceDeclaration:
result = visitInterfaceDeclaration(context, <ts.InterfaceDeclaration>node);
break;
case ts.SyntaxKind.ModuleDeclaration:
result = visitModuleDeclaration(context, <ts.ModuleDeclaration>node);
break;
case ts.SyntaxKind.VariableStatement:
result = visitVariableStatement(context, <ts.VariableStatement>node);
break;
case ts.SyntaxKind.PropertySignature:
case ts.SyntaxKind.PropertyDeclaration:
case ts.SyntaxKind.PropertyAssignment:
case ts.SyntaxKind.ShorthandPropertyAssignment:
case ts.SyntaxKind.VariableDeclaration:
case ts.SyntaxKind.BindingElement:
result = visitVariableDeclaration(context, <ts.VariableDeclaration>node);
break;
case ts.SyntaxKind.EnumDeclaration:
result = visitEnumDeclaration(context, <ts.EnumDeclaration>node);
break;
case ts.SyntaxKind.EnumMember:
result = visitEnumMember(context, <ts.EnumMember>node);
break;
case ts.SyntaxKind.Constructor:
case ts.SyntaxKind.ConstructSignature:
result = visitConstructor(context, <ts.ConstructorDeclaration>node);
break;
case ts.SyntaxKind.MethodSignature:
case ts.SyntaxKind.MethodDeclaration:
case ts.SyntaxKind.FunctionDeclaration:
result = visitFunctionDeclaration(context, <ts.MethodDeclaration>node);
break;
case ts.SyntaxKind.GetAccessor:
result = visitGetAccessorDeclaration(context, <ts.SignatureDeclaration>node);
break;
case ts.SyntaxKind.SetAccessor:
result = visitSetAccessorDeclaration(context, <ts.SignatureDeclaration>node);
break;
case ts.SyntaxKind.CallSignature:
case ts.SyntaxKind.FunctionType:
result = visitCallSignatureDeclaration(context, <ts.SignatureDeclaration>node);
break;
case ts.SyntaxKind.IndexSignature:
result = visitIndexSignatureDeclaration(context, <ts.SignatureDeclaration>node);
break;
case ts.SyntaxKind.Block:
case ts.SyntaxKind.ModuleBlock:
result = visitBlock(context, <ts.Block>node);
break;
case ts.SyntaxKind.ObjectLiteralExpression:
result = visitObjectLiteral(context, <ts.ObjectLiteralExpression>node);
break;
case ts.SyntaxKind.TypeLiteral:
result = visitTypeLiteral(context, <ts.TypeLiteralNode>node);
break;
case ts.SyntaxKind.ExportAssignment:
result = visitExportAssignment(context, <ts.ExportAssignment>node);
break;
case ts.SyntaxKind.TypeAliasDeclaration:
result = visitTypeAliasDeclaration(context, <ts.TypeAliasDeclaration>node);
break;
}
context.visitStack = oldVisitStack;
return result;
}
@@ -183,7 +206,7 @@ module td.converter
var options = context.getOptions();
context.withSourceFile(node, () => {
if (options.mode == SourceFileMode.Modules) {
result = createDeclaration(context, node, models.ReflectionKind.ExternalModule, node.filename);
result = createDeclaration(context, node, models.ReflectionKind.ExternalModule, node.fileName);
context.withScope(result, () => {
visitBlock(context, node);
result.setFlag(models.ReflectionFlag.Exported);
@@ -246,7 +269,7 @@ module td.converter
});
}
var baseType = ts.getClassBaseTypeNode(node);
var baseType = ts.getClassExtendsHeritageClauseElement(node);
if (baseType) {
var type = context.getTypeAtLocation(baseType);
if (!context.isInherit) {
@@ -261,7 +284,7 @@ module td.converter
}
}
var implementedTypes = ts.getClassImplementedTypeNodes(node);
var implementedTypes = ts.getClassImplementsHeritageClauseElements(node);
if (implementedTypes) {
implementedTypes.forEach((implementedType) => {
if (!reflection.implementedTypes) {
@@ -329,9 +352,13 @@ module td.converter
* @return The resulting reflection or NULL.
*/
function visitVariableStatement(context:Context, node:ts.VariableStatement):models.Reflection {
if (node.declarations) {
node.declarations.forEach((variableDeclaration) => {
visitVariableDeclaration(context, variableDeclaration);
if (node.declarationList && node.declarationList.declarations) {
node.declarationList.declarations.forEach((variableDeclaration) => {
if (ts.isBindingPattern(variableDeclaration.name)) {
visitBindingPattern(context, <ts.BindingPattern>variableDeclaration.name);
} else {
visitVariableDeclaration(context, variableDeclaration);
}
});
}
@@ -365,9 +392,19 @@ module td.converter
}
}
var name, isBindingPattern;
if (ts.isBindingPattern(node.name)) {
if (node['propertyName']) {
name = ts.declarationNameToString(node['propertyName']);
isBindingPattern = true;
} else {
return null;
}
}
var scope = context.scope;
var kind = scope.kind & models.ReflectionKind.ClassOrInterface ? models.ReflectionKind.Property : models.ReflectionKind.Variable;
var variable = createDeclaration(context, node, kind);
var variable = createDeclaration(context, node, kind, name);
context.withScope(variable, () => {
if (node.initializer) {
switch (node.initializer.kind) {
@@ -389,7 +426,11 @@ module td.converter
}
if (variable.kind == kind || variable.kind == models.ReflectionKind.Event) {
variable.type = convertType(context, node.type, context.getTypeAtLocation(node));
if (isBindingPattern) {
variable.type = convertDestructuringType(context, <ts.BindingPattern>node.name);
} else {
variable.type = convertType(context, node.type, context.getTypeAtLocation(node));
}
}
});
@@ -397,6 +438,22 @@ module td.converter
}
/**
* Traverse the elements of the given binding pattern and create the corresponding variable reflections.
*
* @param context The context object describing the current state the converter is in.
* @param node The binding pattern node that should be analyzed.
*/
function visitBindingPattern(context:Context, node:ts.BindingPattern) {
node.elements.forEach((element:ts.BindingElement) => {
visitVariableDeclaration(context, <any>element);
if (ts.isBindingPattern(element.name)) {
visitBindingPattern(context, <ts.BindingPattern>element.name);
}
});
}
/**
* Analyze the given enumeration declaration node and create a suitable reflection.
*
@@ -653,7 +710,11 @@ module td.converter
function visitExportAssignment(context:Context, node:ts.ExportAssignment):models.Reflection {
var type = context.getTypeAtLocation(node.exportName);
if (!node.isExportEquals) {
return context.scope;
}
var type = context.getTypeAtLocation(node.expression);
if (type && type.symbol) {
var project = context.project;
type.symbol.declarations.forEach((declaration) => {

View File

@@ -20,7 +20,7 @@ module td.converter
// Node based type conversions by node kind
switch (node.kind) {
case ts.SyntaxKind.StringLiteral:
return convertStringLiteralExpression(<ts.StringLiteralExpression>node);
return convertStringLiteralExpression(<ts.StringLiteral>node);
case ts.SyntaxKind.ArrayType:
return convertArrayTypeNode(context, <ts.ArrayTypeNode>node);
case ts.SyntaxKind.TupleType:
@@ -173,7 +173,7 @@ module td.converter
* @param node The string literal node that should be converted.
* @returns The type reflection representing the given string literal node.
*/
function convertStringLiteralExpression(node:ts.StringLiteralExpression):models.StringLiteralType {
function convertStringLiteralExpression(node:ts.StringLiteral):models.StringLiteralType {
return new models.StringLiteralType(node.text);
}
@@ -272,7 +272,7 @@ module td.converter
if (node.typeName) {
var result, name = ts.getTextOfNode(node.typeName);
if (context.typeParameters && context.typeParameters[name]) {
result = context.typeParameters[name];
result = context.typeParameters[name].clone();
} else {
result = new models.TypeParameterType();
result.name = name;
@@ -471,4 +471,37 @@ module td.converter
return result;
}
/**
* Convert the given binding pattern to its type reflection.
*
* @param context The context object describing the current state the converter is in.
* @param node The binding pattern that should be converted.
* @returns The type reflection representing the given binding pattern.
*/
export function convertDestructuringType(context:Context, node:ts.BindingPattern):models.Type {
if (node.kind == ts.SyntaxKind.ArrayBindingPattern) {
var types = [];
node.elements.forEach((element) => {
types.push(convertType(context, element));
});
return new models.TupleType(types);
} else {
var declaration = new models.DeclarationReflection();
declaration.kind = models.ReflectionKind.TypeLiteral;
declaration.name = '__type';
declaration.parent = context.scope;
context.registerReflection(declaration, null);
context.trigger(Converter.EVENT_CREATE_DECLARATION, declaration, node);
context.withScope(declaration, () => {
node.elements.forEach((element) => {
visit(context, element);
});
});
return new models.ReflectionType(declaration);
}
}
}

View File

@@ -1,5 +1,16 @@
/// <reference path="../../models/Reflection.ts" />
module td.converter
{
/**
* List of reflection kinds that never should be static.
*/
var nonStaticKinds = [
models.ReflectionKind.Class,
models.ReflectionKind.Interface,
models.ReflectionKind.Module
];
/**
* Create a declaration reflection from the given TypeScript node.
*
@@ -22,6 +33,18 @@ module td.converter
name = node.symbol.name;
}
// Test whether the node is exported
var isExported = container.kindOf(models.ReflectionKind.Module) ? false : container.flags.isExported;
if (node.parent && node.parent.kind == ts.SyntaxKind.VariableDeclarationList) {
isExported = isExported || !!(node.parent.parent.flags & ts.NodeFlags.Export)
} else {
isExported = isExported || !!(node.flags & ts.NodeFlags.Export);
}
if (!isExported && context.getOptions().excludeNotExported) {
return null;
}
// Test whether the node is private, when inheriting ignore private members
var isPrivate = !!(node.flags & ts.NodeFlags.Private);
if (context.isInherit && isPrivate) {
@@ -30,12 +53,15 @@ module td.converter
// Test whether the node is static, when merging a module to a class make the node static
var isConstructorProperty:boolean = false;
var isStatic = !!(node.flags & ts.NodeFlags.Static);
if (container.kind == models.ReflectionKind.Class) {
if (node.parent && node.parent.kind == ts.SyntaxKind.Constructor) {
isConstructorProperty = true;
} else if (!node.parent || node.parent.kind != ts.SyntaxKind.ClassDeclaration) {
isStatic = true;
var isStatic = false;
if (nonStaticKinds.indexOf(kind) == -1) {
isStatic = !!(node.flags & ts.NodeFlags.Static);
if (container.kind == models.ReflectionKind.Class) {
if (node.parent && node.parent.kind == ts.SyntaxKind.Constructor) {
isConstructorProperty = true;
} else if (!node.parent || node.parent.kind != ts.SyntaxKind.ClassDeclaration) {
isStatic = true;
}
}
}
@@ -52,6 +78,7 @@ module td.converter
child.setFlag(models.ReflectionFlag.Static, isStatic);
child.setFlag(models.ReflectionFlag.Private, isPrivate);
child.setFlag(models.ReflectionFlag.ConstructorProperty, isConstructorProperty);
child.setFlag(models.ReflectionFlag.Exported, isExported);
child = setupDeclaration(context, child, node);
if (child) {
@@ -85,7 +112,6 @@ module td.converter
reflection.setFlag(models.ReflectionFlag.Protected, !!(node.flags & ts.NodeFlags.Protected));
reflection.setFlag(models.ReflectionFlag.Public, !!(node.flags & ts.NodeFlags.Public));
reflection.setFlag(models.ReflectionFlag.Optional, !!(node['questionToken']));
reflection.setFlag(models.ReflectionFlag.Exported, reflection.parent.flags.isExported || !!(node.flags & ts.NodeFlags.Export));
if (
context.isInherit &&
@@ -235,7 +261,13 @@ module td.converter
var parameter = new models.ParameterReflection(signature, node.symbol.name, models.ReflectionKind.Parameter);
context.registerReflection(parameter, node);
context.withScope(parameter, () => {
parameter.type = convertType(context, node.type, context.getTypeAtLocation(node));
if (ts.isBindingPattern(node.name)) {
parameter.type = convertDestructuringType(context, <ts.BindingPattern>node.name);
parameter.name = '__namedParameters'
} else {
parameter.type = convertType(context, node.type, context.getTypeAtLocation(node));
}
parameter.defaultValue = getDefaultValue(node);
parameter.setFlag(models.ReflectionFlag.Optional, !!node.questionToken);
parameter.setFlag(models.ReflectionFlag.Rest, !!node.dotDotDotToken);

View File

@@ -307,8 +307,8 @@ module td.converter
}
}
if (node.parent && node.parent.kind == ts.SyntaxKind.VariableStatement) {
target = node.parent;
if (node.parent && node.parent.kind == ts.SyntaxKind.VariableDeclarationList) {
target = node.parent.parent;
}
var comments = ts.getJsDocComments(target, sourceFile);
@@ -448,6 +448,7 @@ module td.converter
line = line.substr(paramName.length + 1).trim();
}
line = consumeTypeData(line);
line = line.replace(/^\-\s+/, '');
} else if (tagName == 'returns') {
line = consumeTypeData(line);
}

View File

@@ -0,0 +1,134 @@
module td.converter
{
/**
* A plugin that detects decorators.
*/
export class DecoratorPlugin extends ConverterPlugin
{
private usages:{[symbolID:number]:models.ReferenceType[]};
/**
* Create a new ImplementsPlugin instance.
*
* @param converter The converter this plugin should be attached to.
*/
constructor(converter:Converter) {
super(converter);
converter.on(Converter.EVENT_BEGIN, this.onBegin, this);
converter.on(Converter.EVENT_CREATE_DECLARATION, this.onDeclaration, this);
converter.on(Converter.EVENT_RESOLVE, this.onBeginResolve, this);
}
/**
* Create an object describing the arguments a decorator is set with.
*
* @param args The arguments resolved from the decorator's call expression.
* @param signature The signature definition of the decorator being used.
* @returns An object describing the decorator parameters,
*/
private extractArguments(args:ts.NodeArray<ts.Expression>, signature:ts.Signature):any {
var result = {};
args.forEach((arg:ts.Expression, index:number) => {
if (index < signature.parameters.length) {
var parameter = signature.parameters[index];
result[parameter.name] = ts.getTextOfNode(arg);
} else {
if (!result['...']) result['...'] = [];
result['...'].push(ts.getTextOfNode(arg));
}
});
return result;
}
/**
* Triggered when the converter begins converting a project.
*
* @param context The context object describing the current state the converter is in.
*/
private onBegin(context:Context) {
this.usages = {};
}
/**
* Triggered when the converter has created a declaration or signature reflection.
*
* @param context The context object describing the current state the converter is in.
* @param reflection The reflection that is currently processed.
* @param node The node that is currently processed if available.
*/
private onDeclaration(context:Context, reflection:models.Reflection, node?:ts.Node) {
if (!node || !node.decorators) return;
node.decorators.forEach((decorator:ts.Decorator) => {
var callExpression:ts.CallExpression;
var identifier:ts.Expression;
switch (decorator.expression.kind) {
case ts.SyntaxKind.Identifier:
identifier = decorator.expression;
break;
case ts.SyntaxKind.CallExpression:
callExpression = <ts.CallExpression>decorator.expression;
identifier = callExpression.expression;
break;
default:
return;
}
var info:models.IDecorator = {
name: ts.getTextOfNode(identifier)
};
var type = context.checker.getTypeAtLocation(identifier);
if (type && type.symbol) {
var symbolID = context.getSymbolID(type.symbol);
info.type = new models.ReferenceType(info.name, symbolID);
if (callExpression && callExpression.arguments) {
var signature = context.checker.getResolvedSignature(callExpression);
if (signature) {
info.arguments = this.extractArguments(callExpression.arguments, signature);
}
}
if (!this.usages[symbolID]) this.usages[symbolID] = [];
this.usages[symbolID].push(new models.ReferenceType(reflection.name, models.ReferenceType.SYMBOL_ID_RESOLVED, reflection));
}
if (!reflection.decorators) reflection.decorators = [];
reflection.decorators.push(info);
});
}
/**
* Triggered when the converter resolves a reflection.
*
* @param context The context object describing the current state the converter is in.
* @param reflection The reflection that is currently resolved.
*/
private onBeginResolve(context:Context) {
for (var symbolID in this.usages) {
if (!this.usages.hasOwnProperty(symbolID)) continue;
var id = context.project.symbolMapping[symbolID];
if (!id) continue;
var reflection = context.project.reflections[id];
if (reflection) {
reflection.decorates = this.usages[symbolID];
}
}
}
}
/**
* Register this handler.
*/
Converter.registerPlugin('decorator', DecoratorPlugin);
}

View File

@@ -0,0 +1,113 @@
module td.converter
{
/**
* A plugin that detects interface implementations of functions and
* properties on classes and links them.
*/
export class ImplementsPlugin extends ConverterPlugin
{
/**
* Create a new ImplementsPlugin instance.
*
* @param converter The converter this plugin should be attached to.
*/
constructor(converter:Converter) {
super(converter);
converter.on(Converter.EVENT_RESOLVE, this.onResolve, this, -10);
}
/**
* Mark all members of the given class to be the implementation of the matching interface member.
*
* @param context The context object describing the current state the converter is in.
* @param classReflection The reflection of the classReflection class.
* @param interfaceReflection The reflection of the interfaceReflection interface.
*/
private analyzeClass(context:Context, classReflection:models.DeclarationReflection, interfaceReflection:models.DeclarationReflection) {
interfaceReflection.children.forEach((interfaceMember:models.DeclarationReflection) => {
if (!(interfaceMember instanceof models.DeclarationReflection)) {
return;
}
var classMember:models.DeclarationReflection;
for (var index = 0, count = classReflection.children.length; index < count; index++) {
var child = classReflection.children[index];
if (child.name != interfaceMember.name) continue;
if (child.flags.isStatic != interfaceMember.flags.isStatic) continue;
classMember = child;
break;
}
if (!classMember) {
return;
}
var interfaceMemberName = interfaceReflection.name + '.' + interfaceMember.name;
classMember.implementationOf = new models.ReferenceType(interfaceMemberName, models.ReferenceType.SYMBOL_ID_RESOLVED, interfaceMember);
this.copyComment(classMember, interfaceMember);
if (interfaceMember.kindOf(models.ReflectionKind.FunctionOrMethod) && interfaceMember.signatures && classMember.signatures) {
interfaceMember.signatures.forEach((interfaceSignature:models.SignatureReflection) => {
var interfaceParameters = interfaceSignature.getParameterTypes();
classMember.signatures.forEach((classSignature:models.SignatureReflection) => {
if (models.Type.isTypeListEqual(interfaceParameters, classSignature.getParameterTypes())) {
classSignature.implementationOf = new models.ReferenceType(interfaceMemberName, models.ReferenceType.SYMBOL_ID_RESOLVED, interfaceSignature);
this.copyComment(classSignature, interfaceSignature);
}
});
});
}
});
}
/**
* Copy the comment of the source reflection to the target reflection.
*
* @param target
* @param source
*/
private copyComment(target:models.Reflection, source:models.Reflection) {
if (target.comment && source.comment && target.comment.hasTag('inheritdoc')) {
target.comment.copyFrom(source.comment);
if (target instanceof models.SignatureReflection && target.parameters &&
source instanceof models.SignatureReflection && source.parameters) {
for (var index = 0, count = target.parameters.length; index < count; index++) {
target.parameters[index].comment.copyFrom(source.parameters[index].comment);
}
}
}
}
/**
* Triggered when the converter resolves a reflection.
*
* @param context The context object describing the current state the converter is in.
* @param reflection The reflection that is currently resolved.
*/
private onResolve(context:Context, reflection:models.DeclarationReflection) {
if (reflection.kindOf(models.ReflectionKind.Class) && reflection.implementedTypes) {
reflection.implementedTypes.forEach((type:models.Type) => {
if (!(type instanceof models.ReferenceType)) {
return;
}
var source = <models.DeclarationReflection>(<models.ReferenceType>type).reflection;
if (source && source.kindOf(models.ReflectionKind.Interface)) {
this.analyzeClass(context, reflection, source);
}
});
}
}
}
/**
* Register this handler.
*/
Converter.registerPlugin('implements', ImplementsPlugin);
}

View File

@@ -98,7 +98,7 @@ module td.converter
return;
}
var fileName = node.filename;
var fileName = node.fileName;
var dirName, parentDir = Path.resolve(Path.dirname(fileName));
do {
dirName = parentDir;

View File

@@ -66,7 +66,7 @@ module td.converter
*/
private onBeginDocument(context:Context, reflection:models.Reflection, node?:ts.SourceFile) {
if (!node) return;
var fileName = node.filename;
var fileName = node.fileName;
this.basePath.add(fileName);
this.getSourceFile(fileName, context.project);
}
@@ -84,14 +84,14 @@ module td.converter
private onDeclaration(context:Context, reflection:models.Reflection, node?:ts.Node) {
if (!node) return;
var sourceFile = ts.getSourceFileOfNode(node);
var fileName = sourceFile.filename;
var fileName = sourceFile.fileName;
var file:models.SourceFile = this.getSourceFile(fileName, context.project);
var position;
if (node['name'] && node['name'].end) {
position = sourceFile.getLineAndCharacterFromPosition(node['name'].end);
position = ts.getLineAndCharacterOfPosition(sourceFile, node['name'].end);
} else {
position = sourceFile.getLineAndCharacterFromPosition(node.pos);
position = ts.getLineAndCharacterOfPosition(sourceFile, node.pos);
}
if (!reflection.sources) reflection.sources = [];
@@ -102,7 +102,7 @@ module td.converter
reflection.sources.push({
file: file,
fileName: fileName,
line: position.line,
line: position.line + 1,
character: position.character
});
}

View File

@@ -36,6 +36,12 @@ module td.converter
resolveTypes(reflection, reflection.extendedBy);
resolveTypes(reflection, reflection.implementedTypes);
if (reflection.decorators) reflection.decorators.forEach((decorator:models.IDecorator) => {
if (decorator.type) {
resolveType(reflection, decorator.type);
}
});
if (reflection.kindOf(models.ReflectionKind.ClassOrInterface)) {
this.postpone(reflection);

View File

@@ -88,6 +88,19 @@ module td.models
}
/**
* Copy the data of the given comment into this comment.
*
* @param comment
*/
copyFrom(comment:Comment) {
this.shortText = comment.shortText;
this.text = comment.text;
this.returns = comment.returns;
this.tags = comment.tags ? comment.tags.map((tag) => new CommentTag(tag.tagName, tag.paramName, tag.text)) : null;
}
/**
* Return a raw object representation of this comment.
*/

View File

@@ -182,6 +182,29 @@ module td.models
}
/**
* Defines the usage of a decorator.
*/
export interface IDecorator
{
/**
* The name of the decorator being applied.
*/
name:string;
/**
* The type declaring the decorator.
* Usually a ReferenceType instance pointing to the decorator function.
*/
type?:Type;
/**
* A named map of arguments the decorator is applied with.
*/
arguments?:any;
}
/**
* Base class for all reflection classes.
*
@@ -237,6 +260,16 @@ module td.models
*/
sources:ISourceReference[];
/**
* A list of all decorators attached to this reflection.
*/
decorators:IDecorator[];
/**
* A list of all types that are decorated by this reflection.
*/
decorates:Type[];
/**
* The url of this reflection in the generated documentation.
*/
@@ -460,18 +493,19 @@ module td.models
getChildByName(arg:any):Reflection {
var names:string[] = Array.isArray(arg) ? arg : arg.split('.');
var name = names[0];
var result = null;
this.traverse((child) => {
if (child.name == name) {
if (names.length <= 1) {
return child;
result = child;
} else if (child) {
return child.getChildByName(names.slice(1));
result = child.getChildByName(names.slice(1));
}
}
});
return null;
return result;
}
@@ -538,6 +572,19 @@ module td.models
if (this.flags[key]) result.flags[key] = true;
}
if (this.decorates) {
result.decorates = this.decorates.map((type) => type.toObject());
}
if (this.decorators) {
result.decorators = this.decorators.map((decorator) => {
var result:any = { name:decorator.name };
if (decorator.type) result.type = decorator.type.toObject();
if (decorator.arguments) result.arguments = decorator.arguments;
return result;
});
}
this.traverse((child, property) => {
if (property == TraverseProperty.TypeLiteral) return;
var name = TraverseProperty[property];

View File

@@ -10,7 +10,31 @@ module td.models
/**
* Is this an array type?
*/
isArray:boolean;
isArray:boolean = false;
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new Type();
clone.isArray = this.isArray;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:Type):boolean {
return false;
}
/**
@@ -34,5 +58,44 @@ module td.models
toString():string {
return 'void';
}
/**
* Test whether the two given list of types contain equal types.
*
* @param a
* @param b
*/
static isTypeListSimiliar(a:Type[], b:Type[]):boolean {
if (a.length != b.length) return false;
outerLoop: for (var an = 0, count = a.length; an < count; an++) {
var at = a[an];
for (var bn = 0; bn < count; bn++) {
if (b[bn].equals(at)) continue outerLoop;
}
return false;
}
return true;
}
/**
* Test whether the two given list of types are equal.
*
* @param a
* @param b
*/
static isTypeListEqual(a:Type[], b:Type[]):boolean {
if (a.length != b.length) return false;
for (var index = 0, count = a.length; index < count; index++) {
if (!a[index].equals(b[index])) {
return false;
}
}
return true;
}
}
}

View File

@@ -117,6 +117,13 @@ module td.models
*/
inheritedFrom:Type;
/**
* A type that points to the reflection this reflection is the implementation of.
*
* Applies to class members.
*/
implementationOf:Type;
/**
* A list of all types this reflection extends (e.g. the parent classes).
*/
@@ -236,6 +243,10 @@ module td.models
result.implementedBy = this.implementedBy.map((t) => t.toObject());
}
if (this.implementationOf) {
result.implementationOf = this.implementationOf.toObject();
}
return result;
}

View File

@@ -24,6 +24,22 @@ module td.models
*/
inheritedFrom:Type;
/**
* A type that points to the reflection this reflection is the implementation of.
*
* Applies to class members.
*/
implementationOf:Type;
/**
* Return an array of the parameter types.
*/
getParameterTypes():Type[] {
if (!this.parameters) return [];
return this.parameters.map((parameter:models.ParameterReflection) => parameter.type);
}
/**
@@ -69,6 +85,10 @@ module td.models
result.inheritedFrom = this.inheritedFrom.toObject();
}
if (this.implementationOf) {
result.implementationOf = this.implementationOf.toObject();
}
return result;
}

View File

@@ -27,6 +27,31 @@ module td.models
}
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new IntrinsicType(this.name);
clone.isArray = this.isArray;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:IntrinsicType):boolean {
return type instanceof IntrinsicType &&
type.isArray == this.isArray &&
type.name == this.name;
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -63,6 +63,32 @@ module td.models
}
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new ReferenceType(this.name, this.symbolID, this.reflection);
clone.isArray = this.isArray;
clone.typeArguments = this.typeArguments;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:ReferenceType):boolean {
return type instanceof ReferenceType &&
type.isArray == this.isArray &&
(type.symbolID == this.symbolID || type.reflection == this.reflection);
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -27,6 +27,29 @@ module td.models
}
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new ReflectionType(this.declaration);
clone.isArray = this.isArray;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:ReflectionType):boolean {
return type == this;
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -26,6 +26,31 @@ module td.models
}
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new StringLiteralType(this.value);
clone.isArray = this.isArray;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:StringLiteralType):boolean {
return type instanceof StringLiteralType &&
type.isArray == this.isArray &&
type.value == this.value;
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -26,6 +26,31 @@ module td.models
}
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new TupleType(this.elements);
clone.isArray = this.isArray;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:TupleType):boolean {
if (!(type instanceof TupleType)) return false;
if (type.isArray != this.isArray) return false;
return Type.isTypeListEqual(type.elements, this.elements);
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -17,6 +17,46 @@ module td.models
constraint:Type;
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new TypeParameterType();
clone.isArray = this.isArray;
clone.name = this.name;
clone.constraint = this.constraint;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:TypeParameterType):boolean {
if (!(type instanceof TypeParameterType)) {
return false;
}
var constraintEquals;
if (this.constraint && type.constraint) {
constraintEquals = type.constraint.equals(this.constraint);
} else if (!this.constraint && !type.constraint) {
constraintEquals = true;
} else {
return false;
}
return constraintEquals &&
type.isArray == this.isArray;
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -26,6 +26,31 @@ module td.models
}
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new UnionType(this.types);
clone.isArray = this.isArray;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:UnionType):boolean {
if (!(type instanceof UnionType)) return false;
if (type.isArray != this.isArray) return false;
return Type.isTypeListSimiliar(type.types, this.types);
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -22,6 +22,31 @@ module td.models
}
/**
* Clone this type.
*
* @return A clone of this type.
*/
clone():Type {
var clone = new UnknownType(this.name);
clone.isArray = this.isArray;
return clone;
}
/**
* Test whether this type equals the given type.
*
* @param type The type that should be checked for equality.
* @returns TRUE if the given type equals this type, FALSE otherwise.
*/
equals(type:UnknownType):boolean {
return type instanceof UnknownType &&
type.isArray == this.isArray &&
type.name == this.name;
}
/**
* Return a raw object representation of this type.
*/

View File

@@ -206,7 +206,7 @@ module td.output
}
try {
writeFile(page.filename, page.contents, true);
writeFile(page.filename, page.contents, false);
} catch (error) {
this.application.logger.error('Could not write %s', page.filename);
return false;
@@ -258,6 +258,17 @@ module td.output
*/
private prepareOutputDirectory(directory:string):boolean {
if (FS.existsSync(directory)) {
if (!FS.statSync(directory).isDirectory()) {
this.application.logger.error(
'The output target "%s" exists but it is not a directory.',
directory);
return false;
}
if (FS.readdirSync(directory).length == 0) {
return true;
}
if (!this.theme.isOutputDirectory(directory)) {
this.application.logger.error(
'The output directory "%s" exists but does not seem to be a documentation generated by TypeDoc.\n' +

View File

@@ -8,11 +8,12 @@ module td.output
/**
* The renderer this plugin is attached to.
*/
renderer:Renderer;
protected renderer:Renderer;
/**
* Create a new BasePlugin instance.
* Create a new RendererPlugin instance.
*
* @param renderer The renderer this plugin should be attached to.
*/
@@ -28,4 +29,72 @@ module td.output
this.renderer.off(null, null, this);
}
}
/**
* A plugin for the renderer that reads the current render context.
*/
export class ContextAwareRendererPlugin extends RendererPlugin
{
/**
* The project that is currently processed.
*/
protected project:models.ProjectReflection;
/**
* The reflection that is currently processed.
*/
protected reflection:models.DeclarationReflection;
/**
* The url of the document that is being currently generated.
*/
private location:string;
/**
* Create a new ContextAwareRendererPlugin instance.
*
* @param renderer The renderer this plugin should be attached to.
*/
constructor(renderer:Renderer) {
super(renderer);
renderer.on(Renderer.EVENT_BEGIN, this.onRendererBegin, this);
renderer.on(Renderer.EVENT_BEGIN_PAGE, this.onRendererBeginPage, this);
}
/**
* Transform the given absolute path into a relative path.
*
* @param absolute The absolute path to transform.
* @returns A path relative to the document currently processed.
*/
public getRelativeUrl(absolute:string):string {
var relative = Path.relative(Path.dirname(this.location), Path.dirname(absolute));
return Path.join(relative, Path.basename(absolute)).replace(/\\/g, '/');
}
/**
* Triggered before the renderer starts rendering a project.
*
* @param event An event object describing the current render operation.
*/
protected onRendererBegin(event:OutputEvent) {
this.project = event.project;
}
/**
* Triggered before a document will be rendered.
*
* @param page An event object describing the current render operation.
*/
protected onRendererBeginPage(page:OutputPageEvent) {
this.location = page.url;
this.reflection = page.model instanceof models.DeclarationReflection ? page.model : null;
}
}
}

View File

@@ -0,0 +1,21 @@
module td.output
{
/**
* An event emitted by the [[MarkedPlugin]] on the [[Renderer]] after a chunk of
* markdown has been processed. Allows other plugins to manipulate the result.
*
* @see [[MarkedPlugin.EVENT_PARSE_MARKDOWN]]
*/
export class MarkdownEvent extends Event
{
/**
* The unparsed original text.
*/
originalText:string;
/**
* The parsed output.
*/
parsedText:string;
}
}

View File

@@ -0,0 +1,153 @@
module td.output
{
/**
* A plugin that builds links in markdown texts.
*/
export class MarkedLinksPlugin extends ContextAwareRendererPlugin
{
/**
* Regular expression for detecting bracket links.
*/
private brackets:RegExp = /\[\[([^\]]+)\]\]/g;
/**
* Regular expression for detecting inline tags like {@link ...}.
*/
private inlineTag:RegExp = /(?:\[(.+?)\])?\{@(link|linkcode|linkplain)\s+((?:.|\n)+?)\}/gi;
/**
* Regular expression to test if a string looks like an external url.
*/
private urlPrefix:RegExp = /^(http|ftp)s?:\/\//;
/**
* Create a new MarkedLinksPlugin instance.
*
* @param renderer The renderer this plugin should be attached to.
*/
constructor(renderer:Renderer) {
super(renderer);
renderer.on(MarkedPlugin.EVENT_PARSE_MARKDOWN, this.onParseMarkdown, this, 100);
}
/**
* Find all references to symbols within the given text and transform them into a link.
*
* This function is aware of the current context and will try to find the symbol within the
* current reflection. It will walk up the reflection chain till the symbol is found or the
* root reflection is reached. As a last resort the function will search the entire project
* for the given symbol.
*
* @param text The text that should be parsed.
* @returns The text with symbol references replaced by links.
*/
private replaceBrackets(text:string):string {
return text.replace(this.brackets, (match:string, content:string):string => {
var split = MarkedLinksPlugin.splitLinkText(content);
return this.buildLink(match, split.target, split.caption);
});
}
/**
* Find symbol {@link ...} strings in text and turn into html links
*
* @param text The string in which to replace the inline tags.
* @return The updated string.
*/
private replaceInlineTags(text:string):string {
return text.replace(this.inlineTag, (match:string, leading:string, tagName:string, content:string):string => {
var split = MarkedLinksPlugin.splitLinkText(content);
var target = split.target;
var caption = leading || split.caption;
var monospace;
if (tagName == 'linkcode') monospace = true;
if (tagName == 'linkplain') monospace = false;
return this.buildLink(match, target, caption, monospace);
});
}
/**
* Format a link with the given text and target.
*
* @param original The original link string, will be returned if the target cannot be resolved..
* @param target The link target.
* @param caption The caption of the link.
* @param monospace Whether to use monospace formatting or not.
* @returns A html link tag.
*/
private buildLink(original:string, target:string, caption:string, monospace?:boolean):string {
var attributes = '';
if (this.urlPrefix.test(target)) {
attributes = ' class="external"';
} else {
var reflection;
if (this.reflection) {
reflection = this.reflection.findReflectionByName(target);
} else if (this.project) {
reflection = this.project.findReflectionByName(target);
}
if (reflection && reflection.url) {
target = this.getRelativeUrl(reflection.url);
} else {
return original;
}
}
if (monospace) {
caption = '<code>' + caption + '</code>';
}
return Util.format('<a href="%s"%s>%s</a>', target, attributes, caption);
}
/**
* Triggered when [[MarkedPlugin]] parses a markdown string.
*
* @param event
*/
onParseMarkdown(event:MarkdownEvent) {
event.parsedText = this.replaceInlineTags(this.replaceBrackets(event.parsedText));
}
/**
* Split the given link into text and target at first pipe or space.
*
* @param text The source string that should be checked for a split character.
* @returns An object containing the link text and target.
*/
static splitLinkText(text:string):{caption:string;target:string;} {
var splitIndex = text.indexOf('|');
if (splitIndex === -1) {
splitIndex = text.search(/\s/);
}
if (splitIndex !== -1) {
return {
caption: text.substr(splitIndex + 1).replace(/\n+/, ' '),
target: text.substr(0, splitIndex)
};
} else {
return {
caption: text,
target: text
};
}
}
}
/**
* Register this plugin.
*/
Renderer.registerPlugin('markedLinks', MarkedLinksPlugin);
}

View File

@@ -46,23 +46,8 @@ module td.output
* {{#relativeURL url}}
* ```
*/
export class MarkedPlugin extends RendererPlugin implements IParameterProvider
export class MarkedPlugin extends ContextAwareRendererPlugin implements IParameterProvider
{
/**
* The project that is currently processed.
*/
private project:models.ProjectReflection;
/**
* The reflection that is currently processed.
*/
private reflection:models.DeclarationReflection;
/**
* The url of the document that is being currently generated.
*/
private location:string;
/**
* The path referenced files are located in.
*/
@@ -84,6 +69,13 @@ module td.output
private mediaPattern:RegExp = /media:\/\/([^ "\)\]\}]+)/g;
/**
* Triggered on the renderer when this plugin parses a markdown string.
* @event
*/
static EVENT_PARSE_MARKDOWN:string = 'parseMarkdown';
/**
* Create a new MarkedPlugin instance.
@@ -92,8 +84,7 @@ module td.output
*/
constructor(renderer:Renderer) {
super(renderer);
renderer.on(Renderer.EVENT_BEGIN, this.onRendererBegin, this);
renderer.on(Renderer.EVENT_BEGIN_PAGE, this.onRendererBeginPage, this);
renderer.on(MarkedPlugin.EVENT_PARSE_MARKDOWN, this.onParseMarkdown, this);
var that = this;
Handlebars.registerHelper('markdown', function(arg:any) { return that.parseMarkdown(arg.fn(this), this); });
@@ -101,6 +92,7 @@ module td.output
Handlebars.registerHelper('relativeURL', (url:string) => this.getRelativeUrl(url));
Handlebars.registerHelper('wbr', (str:string) => this.getWordBreaks(str));
Handlebars.registerHelper('ifCond', function(v1, operator, v2, options) { return that.getIfCond(v1, operator, v2, options, this) });
Handlebars.registerHelper('ifSignature', function(obj:any, arg:any) { return obj instanceof models.SignatureReflection ? arg.fn(this) : arg.inverse(this) });
Marked.setOptions({
highlight: (text, lang) => this.getHighlighted(text, lang)
@@ -121,18 +113,6 @@ module td.output
}
/**
* Transform the given absolute path into a relative path.
*
* @param absolute The absolute path to transform.
* @returns A path relative to the document currently processed.
*/
public getRelativeUrl(absolute:string):string {
var relative = Path.relative(Path.dirname(this.location), Path.dirname(absolute));
return Path.join(relative, Path.basename(absolute)).replace(/\\/g, '/');
}
/**
* Compress the given string by removing all newlines.
*
@@ -253,45 +233,12 @@ module td.output
});
}
return this.parseReferences(Marked(text));
}
var event = new MarkdownEvent();
event.originalText = text;
event.parsedText = text;
/**
* Find all references to symbols within the given text and transform them into a link.
*
* The references must be surrounded with double angle brackets. When the reference could
* not be found, the original text containing the brackets will be returned.
*
* This function is aware of the current context and will try to find the symbol within the
* current reflection. It will walk up the reflection chain till the symbol is found or the
* root reflection is reached. As a last resort the function will search the entire project
* for the given symbol.
*
* @param text The text that should be parsed.
* @returns The text with symbol references replaced by links.
*/
public parseReferences(text:string) {
return text.replace(/\[\[([^\]]+)\]\]/g, (match:string, name:string) => {
var reflection:models.Reflection;
var caption = name, splitAt = name.indexOf('|');
if (splitAt !== -1) {
caption = name.substr(splitAt + 1);
name = name.substr(0, splitAt);
}
if (this.reflection) {
reflection = this.reflection.findReflectionByName(name);
} else if (this.project) {
reflection = this.project.findReflectionByName(name);
}
if (reflection && reflection.url) {
return Util.format('<a href="%s">%s</a>', this.getRelativeUrl(reflection.url), caption);
} else {
return match;
}
});
this.renderer.dispatch(MarkedPlugin.EVENT_PARSE_MARKDOWN, event);
return event.parsedText;
}
@@ -300,8 +247,8 @@ module td.output
*
* @param event An event object describing the current render operation.
*/
private onRendererBegin(event:OutputEvent) {
this.project = event.project;
protected onRendererBegin(event:OutputEvent) {
super.onRendererBegin(event);
delete this.includes;
if (event.settings.includes) {
@@ -327,13 +274,12 @@ module td.output
/**
* Triggered before a document will be rendered.
* Triggered when [[MarkedPlugin]] parses a markdown string.
*
* @param page An event object describing the current render operation.
* @param event
*/
private onRendererBeginPage(page:OutputPageEvent) {
this.location = page.url;
this.reflection = page.model instanceof models.DeclarationReflection ? page.model : null;
onParseMarkdown(event:MarkdownEvent) {
event.parsedText = Marked(event.parsedText);
}
}

View File

@@ -17,9 +17,15 @@ declare module td
* Should we hide the TypeDoc link at the end of the page?
*/
hideGenerator?:boolean;
/**
* Specifies the fully qualified name of the root symbol. Defaults to global namespace.
*/
entryPoint?:string;
}
}
module td.output
{
/**
@@ -63,17 +69,17 @@ module td.output
*/
static MAPPINGS:ITemplateMapping[] = [{
kind: [models.ReflectionKind.Class],
isLeaf: true,
isLeaf: false,
directory: 'classes',
template: 'reflection.hbs'
},{
kind: [models.ReflectionKind.Interface],
isLeaf: true,
isLeaf: false,
directory: 'interfaces',
template: 'reflection.hbs'
},{
kind: [models.ReflectionKind.Enum],
isLeaf: true,
isLeaf: false,
directory: 'enums',
template: 'reflection.hbs'
},{
@@ -126,6 +132,10 @@ module td.output
name: 'hideGenerator',
help: 'Do not print the TypeDoc link at the end of the page.',
type: ParameterType.Boolean
},{
name: 'entryPoint',
help: 'Specifies the fully qualified name of the root symbol. Defaults to global namespace.',
type: ParameterType.String
}];
}
@@ -139,18 +149,19 @@ module td.output
*/
getUrls(project:models.ProjectReflection):UrlMapping[] {
var urls = [];
var entryPoint = this.getEntryPoint(project);
if (this.renderer.application.options.readme == 'none') {
project.url = 'index.html';
urls.push(new UrlMapping('index.html', project, 'reflection.hbs'));
entryPoint.url = 'index.html';
urls.push(new UrlMapping('index.html', entryPoint, 'reflection.hbs'));
} else {
project.url = 'globals.html';
urls.push(new UrlMapping('globals.html', project, 'reflection.hbs'));
entryPoint.url = 'globals.html';
urls.push(new UrlMapping('globals.html', entryPoint, 'reflection.hbs'));
urls.push(new UrlMapping('index.html', project, 'index.hbs'));
}
if (project.children) {
project.children.forEach((child) => {
if (entryPoint.children) {
entryPoint.children.forEach((child) => {
DefaultTheme.buildUrls(child, urls);
});
}
@@ -159,6 +170,31 @@ module td.output
}
/**
* Return the entry point of the documentation.
*
* @param project The current project.
* @returns The reflection that should be used as the entry point.
*/
getEntryPoint(project:models.ProjectReflection):models.ContainerReflection {
var entryPoint = this.renderer.application.options.entryPoint;
if (entryPoint) {
var reflection = project.getChildByName(entryPoint);
if (reflection) {
if (reflection instanceof models.ContainerReflection) {
return reflection;
} else {
this.renderer.application.logger.warn('The given entry point `%s` is not a container.', entryPoint);
}
} else {
this.renderer.application.logger.warn('The entry point `%s` could not be found.', entryPoint);
}
}
return project;
}
/**
* Create a navigation structure for the given project.
*
@@ -272,29 +308,37 @@ module td.output
*/
function build(hasSeparateGlobals:boolean):NavigationItem {
var root = new NavigationItem('Index', 'index.html');
var globals = new NavigationItem('Globals', hasSeparateGlobals ? 'globals.html' : 'index.html', root);
globals.isGlobals = true;
if (entryPoint == project) {
var globals = new NavigationItem('Globals', hasSeparateGlobals ? 'globals.html' : 'index.html', root);
globals.isGlobals = true;
}
var modules = [];
project.getReflectionsByKind(models.ReflectionKind.SomeModule).forEach((someModule) => {
var target = someModule.parent;
var inScope = (someModule == entryPoint);
while (target) {
if (target.kindOf(models.ReflectionKind.ExternalModule)) return;
if (entryPoint == target) inScope = true;
target = target.parent;
}
modules.push(someModule);
if (inScope) {
modules.push(someModule);
}
});
if (modules.length < 10) {
buildGroups(modules, root, buildChildren);
buildGroups(modules, root);
} else {
buildGroups(project.getChildrenByKind(models.ReflectionKind.SomeModule), root, buildChildren);
buildGroups(entryPoint.getChildrenByKind(models.ReflectionKind.SomeModule), root, buildChildren);
}
return root;
}
var entryPoint = this.getEntryPoint(project);
return build(this.renderer.application.options.readme != 'none');
}

View File

@@ -66,7 +66,8 @@ describe('Converter', function() {
logger: 'none',
target: 'ES5',
module: 'CommonJS',
noLib: true
noLib: true,
experimentalDecorators: true
});
});

View File

@@ -50,8 +50,8 @@
"kind": 1024,
"kindString": "Property",
"flags": {
"isProtected": true,
"isExported": true
"isExported": true,
"isProtected": true
},
"comment": {
"shortText": "A variable that is made protected via comment."
@@ -95,8 +95,8 @@
"kind": 2048,
"kindString": "Method",
"flags": {
"isProtected": true,
"isExported": true
"isExported": true,
"isProtected": true
},
"signatures": [
{
@@ -161,8 +161,8 @@
"kind": 32,
"kindString": "Variable",
"flags": {
"isProtected": true,
"isExported": true
"isExported": true,
"isProtected": true
},
"comment": {
"shortText": "A variable that is made protected via comment."
@@ -207,8 +207,8 @@
"kind": 64,
"kindString": "Function",
"flags": {
"isProtected": true,
"isExported": true
"isExported": true,
"isProtected": true
},
"signatures": [
{

View File

@@ -86,8 +86,8 @@
"kind": 1024,
"kindString": "Property",
"flags": {
"isPublic": true,
"isExported": true
"isExported": true,
"isPublic": true
},
"comment": {
"shortText": "publicProperty short text."
@@ -147,8 +147,8 @@
"kind": 2048,
"kindString": "Method",
"flags": {
"isProtected": true,
"isExported": true
"isExported": true,
"isProtected": true
},
"signatures": [
{
@@ -173,8 +173,8 @@
"kind": 2048,
"kindString": "Method",
"flags": {
"isPublic": true,
"isExported": true
"isExported": true,
"isPublic": true
},
"signatures": [
{
@@ -387,8 +387,8 @@
"kindString": "Property",
"flags": {
"isConstructorProperty": true,
"isPublic": true,
"isExported": true
"isExported": true,
"isPublic": true
},
"comment": {
"shortText": "Public number property"
@@ -405,8 +405,8 @@
"kindString": "Property",
"flags": {
"isConstructorProperty": true,
"isPublic": true,
"isExported": true
"isExported": true,
"isPublic": true
},
"comment": {
"shortText": "Public implicit any property"
@@ -422,8 +422,8 @@
"kind": 1024,
"kindString": "Property",
"flags": {
"isPublic": true,
"isExported": true
"isExported": true,
"isPublic": true
},
"comment": {
"shortText": "publicProperty short text."
@@ -467,8 +467,8 @@
"kind": 2048,
"kindString": "Method",
"flags": {
"isProtected": true,
"isExported": true
"isExported": true,
"isProtected": true
},
"signatures": [
{
@@ -503,8 +503,8 @@
"kind": 2048,
"kindString": "Method",
"flags": {
"isPublic": true,
"isExported": true
"isExported": true,
"isPublic": true
},
"signatures": [
{

View File

@@ -0,0 +1,51 @@
/// <reference path="../lib.core.d.ts" />
/**
* A decorated class.
*/
@decoratorWithOptions({
name: 'Name of class'
})
class DecoratedClass
{
/**
* A decorated method.
*/
@decoratorAtom
@decoratorWithParam(false)
decoratedMethod() { }
}
/**
* A decorator with no options.
*/
function decoratorAtom(target, key, descriptor) {
descriptor.writable = false;
}
/**
* A decorator with a parameter.
*
* @param value The parameter of this decorator.
*/
function decoratorWithParam(value:boolean) {
return function (target, key, descriptor) {
descriptor.enumerable = value;
}
}
/**
* A decorator consuming an options object.
*
* @param options The options object of this decorator.
* @param options.name A property on the options object of this decorator.
*/
function decoratorWithOptions(options:{name:string}) {
return function (target, key, descriptor) {
descriptor.options = options;
}
}

View File

@@ -0,0 +1,313 @@
{
"id": 0,
"name": "typedoc",
"kind": 0,
"flags": {},
"children": [
{
"id": 1,
"name": "\"decorators\"",
"kind": 1,
"kindString": "External module",
"flags": {
"isExported": true
},
"originalName": "%BASE%/decorators/decorators.ts",
"children": [
{
"id": 2,
"name": "DecoratedClass",
"kind": 128,
"kindString": "Class",
"flags": {},
"comment": {
"shortText": "A decorated class."
},
"decorators": [
{
"name": "decoratorWithOptions",
"type": {
"type": "reference",
"name": "decoratorWithOptions",
"id": 13
},
"arguments": {
"options": "{\n name: 'Name of class'\n}"
}
}
],
"children": [
{
"id": 3,
"name": "decoratedMethod",
"kind": 2048,
"kindString": "Method",
"flags": {},
"decorators": [
{
"name": "decoratorAtom",
"type": {
"type": "reference",
"name": "decoratorAtom",
"id": 5
}
},
{
"name": "decoratorWithParam",
"type": {
"type": "reference",
"name": "decoratorWithParam",
"id": 10
},
"arguments": {
"value": "false"
}
}
],
"signatures": [
{
"id": 4,
"name": "decoratedMethod",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"comment": {
"shortText": "A decorated method."
},
"type": {
"type": "instrinct",
"name": "void"
}
}
]
}
],
"groups": [
{
"title": "Methods",
"kind": 2048,
"children": [
3
]
}
]
},
{
"id": 5,
"name": "decoratorAtom",
"kind": 64,
"kindString": "Function",
"flags": {},
"decorates": [
{
"type": "reference",
"name": "decoratedMethod",
"id": 3
}
],
"signatures": [
{
"id": 6,
"name": "decoratorAtom",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"comment": {
"shortText": "A decorator with no options."
},
"parameters": [
{
"id": 7,
"name": "target",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
},
{
"id": 8,
"name": "key",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
},
{
"id": 9,
"name": "descriptor",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
],
"type": {
"type": "instrinct",
"name": "void"
}
}
]
},
{
"id": 13,
"name": "decoratorWithOptions",
"kind": 64,
"kindString": "Function",
"flags": {},
"decorates": [
{
"type": "reference",
"name": "DecoratedClass",
"id": 2
}
],
"signatures": [
{
"id": 14,
"name": "decoratorWithOptions",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"comment": {
"shortText": "A decorator consuming an options object."
},
"parameters": [
{
"id": 15,
"name": "options",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"comment": {
"text": "The options object of this decorator."
},
"type": {
"type": "reflection",
"declaration": {
"id": 16,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"children": [
{
"id": 17,
"name": "name",
"kind": 32,
"kindString": "Variable",
"flags": {},
"comment": {
"text": "A property on the options object of this decorator.\n"
},
"type": {
"type": "instrinct",
"name": "string"
}
}
],
"groups": [
{
"title": "Variables",
"kind": 32,
"children": [
17
]
}
]
}
}
}
],
"type": {
"type": "reference",
"name": "__function"
}
}
]
},
{
"id": 10,
"name": "decoratorWithParam",
"kind": 64,
"kindString": "Function",
"flags": {},
"decorates": [
{
"type": "reference",
"name": "decoratedMethod",
"id": 3
}
],
"signatures": [
{
"id": 11,
"name": "decoratorWithParam",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"comment": {
"shortText": "A decorator with a parameter."
},
"parameters": [
{
"id": 12,
"name": "value",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"comment": {
"text": "The parameter of this decorator.\n"
},
"type": {
"type": "instrinct",
"name": "boolean"
}
}
],
"type": {
"type": "reference",
"name": "__function"
}
}
]
}
],
"groups": [
{
"title": "Classes",
"kind": 128,
"children": [
2
]
},
{
"title": "Functions",
"kind": 64,
"children": [
5,
13,
10
]
}
]
}
],
"groups": [
{
"title": "External modules",
"kind": 1,
"children": [
1
]
}
]
}

View File

@@ -0,0 +1,28 @@
/// <reference path="../lib.core.d.ts" />
/**
* Destructuring objects.
*/
var {destructObjectA, destructObjectB, destructObjectC} = {destructObjectA:0, destructObjectB:'string', destructObjectC:0};
/**
* Destructuring arrays.
*/
var [destructArrayA, destructArrayB, destructArrayC = 10] = [0, 'string', 0];
/**
* Array Destructuring with rest
*/
var [destructArrayWithRestA, destructArrayWithRestB, ...destructArrayWithRest] = [1, 2, 3, 4];
/**
* Array Destructuring with ignores
*/
var [destructArrayWithIgnoresA, , ...destructArrayWithIgnoresRest] = [1, 2, 3, 4];
/**
* Destructuring function parameters.
*/
function drawText({text = "", location:[x, y] = [0, 0], bold = false}) { }

View File

@@ -0,0 +1,290 @@
{
"id": 0,
"name": "typedoc",
"kind": 0,
"flags": {},
"children": [
{
"id": 1,
"name": "\"destructuring\"",
"kind": 1,
"kindString": "External module",
"flags": {
"isExported": true
},
"originalName": "%BASE%/destructuring/destructuring.ts",
"children": [
{
"id": 5,
"name": "destructArrayA",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "number"
}
},
{
"id": 6,
"name": "destructArrayB",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "string"
}
},
{
"id": 7,
"name": "destructArrayC",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "number"
},
"defaultValue": "10"
},
{
"id": 11,
"name": "destructArrayWithIgnoresA",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "number"
}
},
{
"id": 12,
"name": "destructArrayWithIgnoresRest",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "reference",
"name": "Array",
"typeArguments": [
{
"type": "instrinct",
"name": "number"
}
]
}
},
{
"id": 10,
"name": "destructArrayWithRest",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "reference",
"name": "Array",
"typeArguments": [
{
"type": "instrinct",
"name": "number"
}
]
}
},
{
"id": 8,
"name": "destructArrayWithRestA",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "number"
}
},
{
"id": 9,
"name": "destructArrayWithRestB",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "number"
}
},
{
"id": 2,
"name": "destructObjectA",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "number"
}
},
{
"id": 3,
"name": "destructObjectB",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "string"
}
},
{
"id": 4,
"name": "destructObjectC",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "number"
}
},
{
"id": 13,
"name": "drawText",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 14,
"name": "drawText",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"comment": {
"shortText": "Destructuring function parameters."
},
"parameters": [
{
"id": 15,
"name": "__namedParameters",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"originalName": "__0",
"type": {
"type": "reflection",
"declaration": {
"id": 16,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"children": [
{
"id": 19,
"name": "bold",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "boolean"
},
"defaultValue": "false"
},
{
"id": 18,
"name": "location",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "tuple",
"elements": [
{
"type": "instrinct",
"name": "number"
},
{
"type": "instrinct",
"name": "number"
}
]
},
"defaultValue": " [0, 0]"
},
{
"id": 17,
"name": "text",
"kind": 32,
"kindString": "Variable",
"flags": {},
"type": {
"type": "instrinct",
"name": "string"
},
"defaultValue": "\"\""
}
],
"groups": [
{
"title": "Variables",
"kind": 32,
"children": [
19,
18,
17
]
}
]
}
}
}
],
"type": {
"type": "instrinct",
"name": "void"
}
}
]
}
],
"groups": [
{
"title": "Variables",
"kind": 32,
"children": [
5,
6,
7,
11,
12,
10,
8,
9,
2,
3,
4
]
},
{
"title": "Functions",
"kind": 64,
"children": [
13
]
}
]
}
],
"groups": [
{
"title": "External modules",
"kind": 1,
"children": [
1
]
}
]
}

View File

@@ -16,8 +16,8 @@ export function exportedFunction():void { }
/**
* This is a function with multiple arguments and a return value.
*
* @param paramZ This is a string parameter.
* @param paramG This is a parameter flagged with any.
* @param paramZ - This is a string parameter.
* @param paramG - This is a parameter flagged with any.
* This sentence is placed in the next line.
*
* @param paramA

View File

@@ -63,9 +63,7 @@
"name": "functionVariable",
"kind": 32,
"kindString": "Variable",
"flags": {
"isExported": true
},
"flags": {},
"comment": {
"shortText": "This variable is appended to a function."
},
@@ -79,9 +77,7 @@
"name": "append",
"kind": 64,
"kindString": "Function",
"flags": {
"isExported": true
},
"flags": {},
"signatures": [
{
"id": 40,
@@ -104,9 +100,7 @@
"name": "prepend",
"kind": 64,
"kindString": "Function",
"flags": {
"isExported": true
},
"flags": {},
"signatures": [
{
"id": 42,

View File

@@ -8,7 +8,12 @@ class GenericClass<T> {
/**
* Generic property.
*/
private value:T;
protected value:T;
/**
* Generic property array.
*/
protected values:T[];
/**
* Constructor short text.
@@ -25,4 +30,10 @@ class GenericClass<T> {
getValue():T {
return this.value;
}
}
}
/**
* NonGenericClass short text.
*/
class NonGenericClass extends GenericClass<string> {}

View File

@@ -37,7 +37,7 @@
],
"children": [
{
"id": 5,
"id": 6,
"name": "constructor",
"kind": 512,
"kindString": "Constructor",
@@ -47,7 +47,7 @@
},
"signatures": [
{
"id": 6,
"id": 7,
"name": "new GenericClass",
"kind": 16384,
"kindString": "Constructor signature",
@@ -57,7 +57,7 @@
},
"parameters": [
{
"id": 7,
"id": 8,
"name": "value",
"kind": 32768,
"kindString": "Parameter",
@@ -85,7 +85,7 @@
"kind": 1024,
"kindString": "Property",
"flags": {
"isPrivate": true
"isProtected": true
},
"comment": {
"shortText": "Generic property."
@@ -96,14 +96,31 @@
}
},
{
"id": 8,
"id": 5,
"name": "values",
"kind": 1024,
"kindString": "Property",
"flags": {
"isProtected": true
},
"comment": {
"shortText": "Generic property array."
},
"type": {
"type": "typeParameter",
"isArray": true,
"name": "T"
}
},
{
"id": 9,
"name": "getValue",
"kind": 2048,
"kindString": "Method",
"flags": {},
"signatures": [
{
"id": 9,
"id": 10,
"name": "getValue",
"kind": 4096,
"kindString": "Call signature",
@@ -125,21 +142,208 @@
"title": "Constructors",
"kind": 512,
"children": [
5
6
]
},
{
"title": "Properties",
"kind": 1024,
"children": [
4
4,
5
]
},
{
"title": "Methods",
"kind": 2048,
"children": [
8
9
]
}
],
"extendedBy": [
{
"type": "reference",
"name": "NonGenericClass",
"id": 11
}
]
},
{
"id": 11,
"name": "NonGenericClass",
"kind": 128,
"kindString": "Class",
"flags": {},
"comment": {
"shortText": "NonGenericClass short text."
},
"children": [
{
"id": 14,
"name": "constructor",
"kind": 512,
"kindString": "Constructor",
"flags": {},
"comment": {
"shortText": "Constructor short text."
},
"signatures": [
{
"id": 15,
"name": "new NonGenericClass",
"kind": 16384,
"kindString": "Constructor signature",
"flags": {},
"comment": {
"shortText": "Constructor short text."
},
"parameters": [
{
"id": 16,
"name": "value",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"comment": {
"shortText": "Constructor parameter.\n"
},
"type": {
"type": "instrinct",
"name": "string"
}
}
],
"type": {
"type": "reference",
"name": "NonGenericClass",
"id": 11
},
"inheritedFrom": {
"type": "reference",
"name": "GenericClass.__constructor",
"id": 6
}
}
],
"inheritedFrom": {
"type": "reference",
"name": "GenericClass.__constructor",
"id": 6
}
},
{
"id": 12,
"name": "value",
"kind": 1024,
"kindString": "Property",
"flags": {
"isProtected": true
},
"comment": {
"shortText": "Generic property."
},
"type": {
"type": "instrinct",
"name": "string"
},
"inheritedFrom": {
"type": "reference",
"name": "GenericClass.value",
"id": 4
}
},
{
"id": 13,
"name": "values",
"kind": 1024,
"kindString": "Property",
"flags": {
"isProtected": true
},
"comment": {
"shortText": "Generic property array."
},
"type": {
"type": "instrinct",
"isArray": true,
"name": "string"
},
"inheritedFrom": {
"type": "reference",
"name": "GenericClass.values",
"id": 5
}
},
{
"id": 17,
"name": "getValue",
"kind": 2048,
"kindString": "Method",
"flags": {},
"signatures": [
{
"id": 18,
"name": "getValue",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"comment": {
"shortText": "getValue short text.",
"returns": "Return value comment.\n"
},
"type": {
"type": "instrinct",
"name": "string"
},
"inheritedFrom": {
"type": "reference",
"name": "GenericClass.getValue",
"id": 9
}
}
],
"inheritedFrom": {
"type": "reference",
"name": "GenericClass.getValue",
"id": 9
}
}
],
"groups": [
{
"title": "Constructors",
"kind": 512,
"children": [
14
]
},
{
"title": "Properties",
"kind": 1024,
"children": [
12,
13
]
},
{
"title": "Methods",
"kind": 2048,
"children": [
17
]
}
],
"extendedTypes": [
{
"type": "reference",
"name": "GenericClass",
"id": 2,
"typeArguments": [
{
"type": "instrinct",
"name": "string"
}
]
}
]
@@ -150,7 +354,8 @@
"title": "Classes",
"kind": 128,
"children": [
2
2,
11
]
}
]

View File

@@ -8,4 +8,16 @@
*/
function genericFunction<T extends Object>(value:T):T {
return value;
}
/**
* A function with a generic type array parameter.
*
* @param param A generic parameter.
* @param params A generic array parameter.
* @returns A generic array.
*/
function functionWithGenericArrayParameter<T>(param:T, params:T[]):T[] {
return params;
}

View File

@@ -14,6 +14,71 @@
},
"originalName": "%BASE%/generic-function/generic-function.ts",
"children": [
{
"id": 6,
"name": "functionWithGenericArrayParameter",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 7,
"name": "functionWithGenericArrayParameter",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"comment": {
"shortText": "A function with a generic type array parameter.",
"returns": "A generic array.\n"
},
"typeParameter": [
{
"id": 8,
"name": "T",
"kind": 131072,
"kindString": "Type parameter",
"flags": {}
}
],
"parameters": [
{
"id": 9,
"name": "param",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"comment": {
"text": "A generic parameter."
},
"type": {
"type": "typeParameter",
"name": "T"
}
},
{
"id": 10,
"name": "params",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"comment": {
"text": "A generic array parameter."
},
"type": {
"type": "typeParameter",
"isArray": true,
"name": "T"
}
}
],
"type": {
"type": "typeParameter",
"isArray": true,
"name": "T"
}
}
]
},
{
"id": 2,
"name": "genericFunction",
@@ -84,6 +149,7 @@
"title": "Functions",
"kind": 64,
"children": [
6,
2
]
}

View File

@@ -0,0 +1,77 @@
/// <reference path="../lib.core.d.ts" />
module Forms
{
/**
* Function signature of an event listener callback
*/
interface IEventListener<T>
{
(parameter:T):any;
}
/**
* Encapsulates a subscription to an event dispatcher, and allows for unsubscribing
*/
interface ISubscription<T>
{
listener: IEventListener<T>
priority: number
filter: any
/**
* Remove this subscription from its dispatcher
*/
unsubscribe():void
}
class Subscription<V> implements ISubscription<V>
{
constructor(public listener:IEventListener<V>, public filter:any, public priority:number, public dispatcher:EventDispatcher<V>) { }
unsubscribe():void { }
}
/**
* The main interface of the event system.
* An IEventDispatcher is an object that keeps a list of listeners, and sends dispatches events of a certain type to them.
* This might otherwise be known as a Signal.
*/
export interface IEventDispatcher<U>
{
add(listener:IEventListener<U>, filter?:any, priority?:number):ISubscription<U>;
remove(subscription:ISubscription<U>): void;
dispatch(parameter:U): boolean;
clear():void;
hasListeners():boolean;
}
/**
* Implementation of IEventDispatcher
* @see IEventDispatcher
*/
export class EventDispatcher<T> implements IEventDispatcher<T>
{
private subscriptions:ISubscription<T>[];
add(listener:IEventListener<T>, filter:any=null, priority:number = 0):ISubscription<T> {
return new Subscription<T>(listener, filter, priority, this);
}
remove(subscription:ISubscription<T>):void { }
dispatch(event:T):boolean {
return false;
}
clear():void { }
hasListeners():boolean {
return false;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,20 @@
/// <reference path="../lib.core.d.ts" />
var onSuccess: any = function () { };
var onError: any = function () { };
var onFinally: any = function () { };
var callbackReturn = {
success: (success_callback: () => any) => {
onSuccess = success_callback;
return callbackReturn;
},
error: (error_callback: () => any) => {
onError = error_callback;
return callbackReturn;
},
finally: (finally_callback: () => any) => {
onFinally = finally_callback;
return callbackReturn;
}
};

View File

@@ -0,0 +1,689 @@
{
"id": 0,
"name": "typedoc",
"kind": 0,
"flags": {},
"children": [
{
"id": 1,
"name": "\"literal-object-callbacks\"",
"kind": 1,
"kindString": "External module",
"flags": {
"isExported": true
},
"originalName": "%BASE%/literal-object-callbacks/literal-object-callbacks.ts",
"children": [
{
"id": 4,
"name": "onError",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 5,
"name": "onError",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "void"
}
}
]
},
{
"id": 6,
"name": "onFinally",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 7,
"name": "onFinally",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "void"
}
}
]
},
{
"id": 2,
"name": "onSuccess",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 3,
"name": "onSuccess",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "void"
}
}
]
},
{
"id": 8,
"name": "callbackReturn",
"kind": 2097152,
"kindString": "Object literal",
"flags": {},
"children": [
{
"id": 27,
"name": "error",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 28,
"name": "error",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 29,
"name": "error_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 30,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 31,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 32,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"children": [
{
"id": 39,
"name": "finally",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 40,
"name": "finally",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 41,
"name": "finally_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 42,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 43,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 44,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {}
}
}
}
]
},
{
"id": 33,
"name": "success",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 34,
"name": "success",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 35,
"name": "success_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 36,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 37,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 38,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {}
}
}
}
]
}
],
"groups": [
{
"title": "Functions",
"kind": 64,
"children": [
39,
33
]
}
]
}
}
}
]
},
{
"id": 45,
"name": "finally",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 46,
"name": "finally",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 47,
"name": "finally_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 48,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 49,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 50,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"children": [
{
"id": 57,
"name": "error",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 58,
"name": "error",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 59,
"name": "error_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 60,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 61,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 62,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {}
}
}
}
]
},
{
"id": 51,
"name": "success",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 52,
"name": "success",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 53,
"name": "success_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 54,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 55,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 56,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {}
}
}
}
]
}
],
"groups": [
{
"title": "Functions",
"kind": 64,
"children": [
57,
51
]
}
]
}
}
}
]
},
{
"id": 9,
"name": "success",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 10,
"name": "success",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 11,
"name": "success_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 12,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 13,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 14,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"children": [
{
"id": 15,
"name": "error",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 16,
"name": "error",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 17,
"name": "error_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 18,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 19,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 20,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {}
}
}
}
]
},
{
"id": 21,
"name": "finally",
"kind": 64,
"kindString": "Function",
"flags": {},
"signatures": [
{
"id": 22,
"name": "finally",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"parameters": [
{
"id": 23,
"name": "finally_callback",
"kind": 32768,
"kindString": "Parameter",
"flags": {},
"type": {
"type": "reflection",
"declaration": {
"id": 24,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {},
"signatures": [
{
"id": 25,
"name": "__call",
"kind": 4096,
"kindString": "Call signature",
"flags": {},
"type": {
"type": "instrinct",
"name": "any"
}
}
]
}
}
}
],
"type": {
"type": "reflection",
"declaration": {
"id": 26,
"name": "__type",
"kind": 65536,
"kindString": "Type literal",
"flags": {}
}
}
}
]
}
],
"groups": [
{
"title": "Functions",
"kind": 64,
"children": [
15,
21
]
}
]
}
}
}
]
}
],
"groups": [
{
"title": "Functions",
"kind": 64,
"children": [
27,
45,
9
]
}
],
"type": {
"type": "instrinct",
"name": "object"
}
}
],
"groups": [
{
"title": "Functions",
"kind": 64,
"children": [
4,
6,
2
]
},
{
"title": "Object literals",
"kind": 2097152,
"children": [
8
]
}
]
}
],
"groups": [
{
"title": "External modules",
"kind": 1,
"children": [
1
]
}
]
}

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -228,6 +228,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -213,6 +213,7 @@
<h3>name</h3>
<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.inameinterface.html">INameInterface</a>.<a href="../interfaces/_classes_.inameinterface.html#name">name</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L58">classes.ts:58</a></li>
</ul>
@@ -324,6 +325,7 @@
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.inameinterface.html">INameInterface</a>.<a href="../interfaces/_classes_.inameinterface.html#getname">getName</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L102">classes.ts:102</a></li>
</ul>
@@ -376,7 +378,7 @@
<a name="catest" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> ca<wbr>Test</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static">
<li class="tsd-signature tsd-kind-icon">ca<wbr>Test<span class="tsd-signature-symbol">(</span>originalValues<span class="tsd-signature-symbol">: </span><a href="_classes_.baseclass.html" class="tsd-signature-type">BaseClass</a>, newRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, fieldNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string[]</span>, mandatoryFields<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
<li class="tsd-signature tsd-kind-icon">ca<wbr>Test<span class="tsd-signature-symbol">(</span>originalValues<span class="tsd-signature-symbol">: </span><a href="_classes_.baseclass.html" class="tsd-signature-type">BaseClass</a>, newRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, fieldNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, mandatoryFields<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
@@ -401,10 +403,10 @@
<h5>newRecord: <span class="tsd-signature-type">any</span></h5>
</li>
<li>
<h5>fieldNames: <span class="tsd-signature-type">string[]</span></h5>
<h5>fieldNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
<li>
<h5>mandatoryFields: <span class="tsd-signature-type">string[]</span></h5>
<h5>mandatoryFields: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@@ -498,6 +500,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -144,7 +144,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L275">classes.ts:275</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L279">classes.ts:279</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -200,7 +200,7 @@
<div class="tsd-signature tsd-kind-icon">p2<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">T</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L286">classes.ts:286</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L290">classes.ts:290</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -215,7 +215,7 @@
<div class="tsd-signature tsd-kind-icon">p3<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L286">classes.ts:286</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L290">classes.ts:290</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -230,7 +230,7 @@
<div class="tsd-signature tsd-kind-icon">p4<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L286">classes.ts:286</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L290">classes.ts:290</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -245,7 +245,7 @@
<div class="tsd-signature tsd-kind-icon">value<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">T</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L275">classes.ts:275</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L279">classes.ts:279</a></li>
</ul>
</aside>
</section>
@@ -262,7 +262,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L298">classes.ts:298</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L302">classes.ts:302</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">T</span></h4>
@@ -279,7 +279,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L293">classes.ts:293</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L297">classes.ts:297</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -335,6 +335,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -166,6 +166,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -131,7 +131,7 @@
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.genericclass.html">GenericClass</a>.<a href="_classes_.genericclass.html#constructor">constructor</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L275">classes.ts:275</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L279">classes.ts:279</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -188,7 +188,7 @@
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.genericclass.html">GenericClass</a>.<a href="_classes_.genericclass.html#p2">p2</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L286">classes.ts:286</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L290">classes.ts:290</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -204,7 +204,7 @@
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.genericclass.html">GenericClass</a>.<a href="_classes_.genericclass.html#p3">p3</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L286">classes.ts:286</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L290">classes.ts:290</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -220,7 +220,7 @@
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.genericclass.html">GenericClass</a>.<a href="_classes_.genericclass.html#value">value</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L275">classes.ts:275</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L279">classes.ts:279</a></li>
</ul>
</aside>
</section>
@@ -238,7 +238,7 @@
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.genericclass.html">GenericClass</a>.<a href="_classes_.genericclass.html#getvalue">getValue</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L298">classes.ts:298</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L302">classes.ts:302</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <a href="_classes_.subclassb.html" class="tsd-signature-type">SubClassB</a></h4>
@@ -256,7 +256,7 @@
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.genericclass.html">GenericClass</a>.<a href="_classes_.genericclass.html#setvalue">setValue</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L293">classes.ts:293</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L297">classes.ts:297</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -266,7 +266,7 @@
<li>
<h5>value: <a href="_classes_.subclassb.html" class="tsd-signature-type">SubClassB</a></h5>
<div class="tsd-comment tsd-typography">
<p><a href="_classes_.genericclass.html#getvalue">getValue</a> is the counterpart.</p>
<p><a href="_classes_.nongenericclass.html#getvalue">getValue</a> is the counterpart.</p>
</div>
</li>
</ul>
@@ -312,6 +312,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -208,6 +208,7 @@
<h3>name</h3>
<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.iprintnameinterface.html">IPrintNameInterface</a>.<a href="../interfaces/_classes_.iprintnameinterface.html#name">name</a></p>
<p>Inherited from <a href="_classes_.baseclass.html">BaseClass</a>.<a href="_classes_.baseclass.html#name">name</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L58">classes.ts:58</a></li>
@@ -261,7 +262,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L215">classes.ts:215</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L219">classes.ts:219</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -275,7 +276,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L225">classes.ts:225</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L229">classes.ts:229</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -309,7 +310,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L235">classes.ts:235</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L239">classes.ts:239</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -332,7 +333,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L246">classes.ts:246</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L250">classes.ts:250</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -368,7 +369,7 @@
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.baseclass.html#arrowfunction">arrowFunction</a>.arrowFunction</p>
<p>Inherited from <a href="_classes_.baseclass.html">BaseClass</a>.<a href="_classes_.baseclass.html#arrowfunction">arrowFunction</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L140">classes.ts:140</a></li>
</ul>
@@ -410,6 +411,7 @@
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.iprintnameinterface.html">IPrintNameInterface</a>.<a href="../interfaces/_classes_.iprintnameinterface.html#getname">getName</a></p>
<p>Inherited from <a href="_classes_.baseclass.html">BaseClass</a>.<a href="_classes_.baseclass.html#getname">getName</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L102">classes.ts:102</a></li>
@@ -436,6 +438,7 @@
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.iprintnameinterface.html">IPrintNameInterface</a>.<a href="../interfaces/_classes_.iprintnameinterface.html#print">print</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L203">classes.ts:203</a></li>
</ul>
@@ -464,10 +467,16 @@
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.iprintnameinterface.html">IPrintNameInterface</a>.<a href="../interfaces/_classes_.iprintnameinterface.html#printname">printName</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L205">classes.ts:205</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L209">classes.ts:209</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This is a interface function of IPrintNameInterface</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
@@ -509,7 +518,7 @@
<a name="catest" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> ca<wbr>Test</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<li class="tsd-signature tsd-kind-icon">ca<wbr>Test<span class="tsd-signature-symbol">(</span>originalValues<span class="tsd-signature-symbol">: </span><a href="_classes_.baseclass.html" class="tsd-signature-type">BaseClass</a>, newRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, fieldNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string[]</span>, mandatoryFields<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
<li class="tsd-signature tsd-kind-icon">ca<wbr>Test<span class="tsd-signature-symbol">(</span>originalValues<span class="tsd-signature-symbol">: </span><a href="_classes_.baseclass.html" class="tsd-signature-type">BaseClass</a>, newRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, fieldNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, mandatoryFields<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
@@ -535,10 +544,10 @@
<h5>newRecord: <span class="tsd-signature-type">any</span></h5>
</li>
<li>
<h5>fieldNames: <span class="tsd-signature-type">string[]</span></h5>
<h5>fieldNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
<li>
<h5>mandatoryFields: <span class="tsd-signature-type">string[]</span></h5>
<h5>mandatoryFields: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@@ -634,6 +643,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -144,7 +144,7 @@
<aside class="tsd-sources">
<p>Overwrites <a href="_classes_.baseclass.html">BaseClass</a>.<a href="_classes_.baseclass.html#constructor">constructor</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L258">classes.ts:258</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L262">classes.ts:262</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -181,6 +181,7 @@
<h3>name</h3>
<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.inameinterface.html">INameInterface</a>.<a href="../interfaces/_classes_.inameinterface.html#name">name</a></p>
<p>Inherited from <a href="_classes_.baseclass.html">BaseClass</a>.<a href="_classes_.baseclass.html#name">name</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L58">classes.ts:58</a></li>
@@ -232,7 +233,7 @@
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="_classes_.baseclass.html#arrowfunction">arrowFunction</a>.arrowFunction</p>
<p>Inherited from <a href="_classes_.baseclass.html">BaseClass</a>.<a href="_classes_.baseclass.html#arrowfunction">arrowFunction</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L140">classes.ts:140</a></li>
</ul>
@@ -275,7 +276,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L263">classes.ts:263</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L267">classes.ts:267</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -297,6 +298,7 @@
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/_classes_.inameinterface.html">INameInterface</a>.<a href="../interfaces/_classes_.inameinterface.html#getname">getName</a></p>
<p>Inherited from <a href="_classes_.baseclass.html">BaseClass</a>.<a href="_classes_.baseclass.html#getname">getName</a></p>
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/classes.ts#L102">classes.ts:102</a></li>
@@ -351,7 +353,7 @@
<a name="catest" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> ca<wbr>Test</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<li class="tsd-signature tsd-kind-icon">ca<wbr>Test<span class="tsd-signature-symbol">(</span>originalValues<span class="tsd-signature-symbol">: </span><a href="_classes_.baseclass.html" class="tsd-signature-type">BaseClass</a>, newRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, fieldNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string[]</span>, mandatoryFields<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
<li class="tsd-signature tsd-kind-icon">ca<wbr>Test<span class="tsd-signature-symbol">(</span>originalValues<span class="tsd-signature-symbol">: </span><a href="_classes_.baseclass.html" class="tsd-signature-type">BaseClass</a>, newRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, fieldNames<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, mandatoryFields<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
@@ -377,10 +379,10 @@
<h5>newRecord: <span class="tsd-signature-type">any</span></h5>
</li>
<li>
<h5>fieldNames: <span class="tsd-signature-type">string[]</span></h5>
<h5>fieldNames: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
<li>
<h5>mandatoryFields: <span class="tsd-signature-type">string[]</span></h5>
<h5>mandatoryFields: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@@ -476,6 +478,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -399,6 +399,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -215,6 +215,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -217,6 +217,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -267,6 +267,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -232,6 +232,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -186,6 +186,9 @@
<li class="current tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -225,6 +225,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -244,6 +244,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -81,6 +81,7 @@
<li class="tsd-kind-external-module"><a href="modules/_single_export_.html" class="tsd-kind-icon">"single-<wbr>export"</a></li>
<li class="tsd-kind-external-module"><a href="modules/_typescript_1_3_.html" class="tsd-kind-icon">"typescript-<wbr>1.3"</a></li>
<li class="tsd-kind-external-module"><a href="modules/_typescript_1_4_.html" class="tsd-kind-icon">"typescript-<wbr>1.4"</a></li>
<li class="tsd-kind-external-module"><a href="modules/_typescript_1_5_.html" class="tsd-kind-icon">"typescript-<wbr>1.5"</a></li>
</ul>
</section>
</div>
@@ -123,6 +124,9 @@
<li class=" tsd-kind-external-module">
<a href="modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -139,6 +139,8 @@ $ typedoc
Set the Google Analytics tracking ID and activate tracking code.</li>
<li><code>--gaSite &lt;site&gt;</code><br>
Set the site name for Google Analytics. Defaults to <code>auto</code></li>
<li><code>--entryPoint &lt;fully.qualified.name&gt;</code><br>
Specifies the fully qualified name of the root symbol. Defaults to global namespace.</li>
</ul>
<h4 id="content">Content</h4>
<ul>
@@ -212,6 +214,9 @@ $ typedoc
<li class=" tsd-kind-external-module">
<a href="modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -199,6 +199,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -172,6 +172,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -256,6 +256,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -179,6 +179,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -250,6 +250,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -225,6 +225,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -225,6 +225,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -219,6 +219,9 @@
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -104,7 +104,7 @@
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported">
<a name="commandline" class="tsd-anchor"></a>
<h3>commandline</h3>
<div class="tsd-signature tsd-kind-icon">commandline<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
<div class="tsd-signature tsd-kind-icon">commandline<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/typescript-1.4.ts#L12">typescript-1.4.ts:12</a></li>
@@ -159,6 +159,9 @@
<li class="current tsd-kind-external-module">
<a href="../modules/_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="../modules/_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -222,6 +222,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -152,6 +152,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -130,6 +130,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -118,6 +118,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -298,6 +298,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -84,6 +84,7 @@
<li class="tsd-kind-function tsd-parent-kind-external-module"><a href="_functions_.html#exportedfunction" class="tsd-kind-icon">exported<wbr>Function</a></li>
<li class="tsd-kind-function tsd-parent-kind-external-module"><a href="_functions_.html#functionwitharguments" class="tsd-kind-icon">function<wbr>With<wbr>Arguments</a></li>
<li class="tsd-kind-function tsd-parent-kind-external-module"><a href="_functions_.html#functionwithdefaults" class="tsd-kind-icon">function<wbr>With<wbr>Defaults</a></li>
<li class="tsd-kind-function tsd-parent-kind-external-module"><a href="_functions_.html#functionwithdoclink" class="tsd-kind-icon">function<wbr>With<wbr>Doc<wbr>Link</a></li>
<li class="tsd-kind-function tsd-parent-kind-external-module"><a href="_functions_.html#functionwithoptionalvalue" class="tsd-kind-icon">function<wbr>With<wbr>Optional<wbr>Value</a></li>
<li class="tsd-kind-function tsd-parent-kind-external-module tsd-is-not-exported"><a href="_functions_.html#functionwithrest" class="tsd-kind-icon">function<wbr>With<wbr>Rest</a></li>
<li class="tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter"><a href="_functions_.html#genericfunction" class="tsd-kind-icon">generic<wbr>Function</a></li>
@@ -271,6 +272,31 @@ functionWithArguments(<span class="hljs-string">'arg'</span>, <span class="hljs-
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-external-module">
<a name="functionwithdoclink" class="tsd-anchor"></a>
<h3>function<wbr>With<wbr>Doc<wbr>Link</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-external-module">
<li class="tsd-signature tsd-kind-icon">function<wbr>With<wbr>Doc<wbr>Link<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/functions.ts#L191">functions.ts:191</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>See <a href="../interfaces/_classes_.inameinterface.html"><code>INameInterface</code></a> and <a href="../interfaces/_classes_.inameinterface.html#name">INameInterface&#39;s name property</a>.
Also, check out <a href="http://www.google.com" class="external">Google</a> and
<a href="https://github.com" class="external">GitHub</a>.</p>
</div>
<p>Taken from <a href="http://usejsdoc.org/tags-inline-link.html">http://usejsdoc.org/tags-inline-link.html</a>.</p>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-external-module">
<a name="functionwithoptionalvalue" class="tsd-anchor"></a>
<h3>function<wbr>With<wbr>Optional<wbr>Value</h3>
@@ -312,7 +338,7 @@ functionWithArguments(<span class="hljs-string">'arg'</span>, <span class="hljs-
<a name="functionwithrest" class="tsd-anchor"></a>
<h3>function<wbr>With<wbr>Rest</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-external-module tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">function<wbr>With<wbr>Rest<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>rest<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
<li class="tsd-signature tsd-kind-icon">function<wbr>With<wbr>Rest<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>rest<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
@@ -329,7 +355,7 @@ functionWithArguments(<span class="hljs-string">'arg'</span>, <span class="hljs-
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>rest: <span class="tsd-signature-type">string[]</span></h5>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>rest: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
<div class="tsd-comment tsd-typography">
<p>Multiple strings.</p>
</div>
@@ -561,6 +587,9 @@ functionWithArguments(<span class="hljs-string">'arg'</span>, <span class="hljs-
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
@@ -577,6 +606,9 @@ functionWithArguments(<span class="hljs-string">'arg'</span>, <span class="hljs-
<li class=" tsd-kind-function tsd-parent-kind-external-module">
<a href="_functions_.html#functionwithdefaults" class="tsd-kind-icon">function<wbr>With<wbr>Defaults</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-external-module">
<a href="_functions_.html#functionwithdoclink" class="tsd-kind-icon">function<wbr>With<wbr>Doc<wbr>Link</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-external-module">
<a href="_functions_.html#functionwithoptionalvalue" class="tsd-kind-icon">function<wbr>With<wbr>Optional<wbr>Value</a>
</li>

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -111,25 +111,25 @@
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<section class="tsd-index-section tsd-is-not-exported">
<h3>Variables</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_functions_.modulefunction.html#functionvariable" class="tsd-kind-icon">function<wbr>Variable</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_functions_.modulefunction.html#functionvariable" class="tsd-kind-icon">function<wbr>Variable</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<section class="tsd-index-section tsd-is-not-exported">
<h3>Functions</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-function tsd-parent-kind-module"><a href="_functions_.modulefunction.html#append" class="tsd-kind-icon">append</a></li>
<li class="tsd-kind-function tsd-parent-kind-module"><a href="_functions_.modulefunction.html#prepend" class="tsd-kind-icon">prepend</a></li>
<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_functions_.modulefunction.html#append" class="tsd-kind-icon">append</a></li>
<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_functions_.modulefunction.html#prepend" class="tsd-kind-icon">prepend</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
<h2>Variables</h2>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a name="functionvariable" class="tsd-anchor"></a>
<h3>function<wbr>Variable</h3>
<div class="tsd-signature tsd-kind-icon">function<wbr>Variable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
@@ -145,12 +145,12 @@
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
<h2>Functions</h2>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
<a name="append" class="tsd-anchor"></a>
<h3>append</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">append<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
@@ -169,10 +169,10 @@
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
<a name="prepend" class="tsd-anchor"></a>
<h3>prepend</h3>
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">prepend<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
@@ -234,17 +234,20 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
<li class=" tsd-kind-variable tsd-parent-kind-module">
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="_functions_.modulefunction.html#functionvariable" class="tsd-kind-icon">function<wbr>Variable</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
<a href="_functions_.modulefunction.html#append" class="tsd-kind-icon">append</a>
</li>
<li class=" tsd-kind-function tsd-parent-kind-module">
<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
<a href="_functions_.modulefunction.html#prepend" class="tsd-kind-icon">prepend</a>
</li>
</ul>

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -195,6 +195,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -165,7 +165,7 @@
<h5>valueX<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>valueA<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number[]</span></h5>
<h5>valueA<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
<li class="tsd-parameter">
<h5>valueY<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">function</span></h5>
@@ -391,6 +391,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -91,8 +91,8 @@
<h3>Variables</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_modules_.mymodule.html#exportedmodulevariable" class="tsd-kind-icon">exported<wbr>Module<wbr>Variable</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_modules_.mymodule.html#modulevariable" class="tsd-kind-icon">module<wbr>Variable</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_modules_.mymodule.html#modulevariable2" class="tsd-kind-icon">module<wbr>Variable2</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_modules_.mymodule.html#modulevariable" class="tsd-kind-icon">module<wbr>Variable</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_modules_.mymodule.html#modulevariable2" class="tsd-kind-icon">module<wbr>Variable2</a></li>
</ul>
</section>
<section class="tsd-index-section ">
@@ -116,7 +116,7 @@
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a name="modulevariable" class="tsd-anchor"></a>
<h3>module<wbr>Variable</h3>
<div class="tsd-signature tsd-kind-icon">module<wbr>Variable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></div>
@@ -126,10 +126,10 @@
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a name="modulevariable2" class="tsd-anchor"></a>
<h3>module<wbr>Variable2</h3>
<div class="tsd-signature tsd-kind-icon">module<wbr>Variable2<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number[]</span></div>
<div class="tsd-signature tsd-kind-icon">module<wbr>Variable2<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L39">modules.ts:39</a></li>
@@ -245,6 +245,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
@@ -252,10 +255,10 @@
<li class=" tsd-kind-variable tsd-parent-kind-module">
<a href="_modules_.mymodule.html#exportedmodulevariable" class="tsd-kind-icon">exported<wbr>Module<wbr>Variable</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module">
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="_modules_.mymodule.html#modulevariable" class="tsd-kind-icon">module<wbr>Variable</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module">
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="_modules_.mymodule.html#modulevariable2" class="tsd-kind-icon">module<wbr>Variable2</a>
</li>
<li class=" tsd-kind-object-literal tsd-parent-kind-module">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -84,19 +84,19 @@
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<section class="tsd-index-section tsd-is-not-exported">
<h3>Variables</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_modules_.mymodule.mysubmodule.html#a" class="tsd-kind-icon">a</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_modules_.mymodule.mysubmodule.html#b" class="tsd-kind-icon">b</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_modules_.mymodule.mysubmodule.html#a" class="tsd-kind-icon">a</a></li>
<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_modules_.mymodule.mysubmodule.html#b" class="tsd-kind-icon">b</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
<h2>Variables</h2>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a name="a" class="tsd-anchor"></a>
<h3>a</h3>
<div class="tsd-signature tsd-kind-icon">a<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
@@ -106,7 +106,7 @@
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a name="b" class="tsd-anchor"></a>
<h3>b</h3>
<div class="tsd-signature tsd-kind-icon">b<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
@@ -164,14 +164,17 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
<li class=" tsd-kind-variable tsd-parent-kind-module">
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="_modules_.mymodule.mysubmodule.html#a" class="tsd-kind-icon">a</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module">
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="_modules_.mymodule.mysubmodule.html#b" class="tsd-kind-icon">b</a>
</li>
</ul>

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -118,6 +118,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

View File

@@ -1,4 +1,4 @@
<!doctype html>
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
@@ -142,6 +142,9 @@
<li class=" tsd-kind-external-module">
<a href="_typescript_1_4_.html">"typescript-<wbr>1.4"</a>
</li>
<li class=" tsd-kind-external-module">
<a href="_typescript_1_5_.html">"typescript-<wbr>1.5"</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">

Some files were not shown because too many files have changed in this diff Show More