From 7a4a3c850fea9941bd58bbcb442bf3aed85a8d46 Mon Sep 17 00:00:00 2001 From: Alex Eagle Date: Tue, 23 Jun 2015 13:45:16 -0700 Subject: [PATCH] fix(typings): Minor issues preventing angular2.d.ts from working in TS 1.4. This removes some, but not all, of the manual work needed to patch up our .d.ts for pushing to DefinitelyTyped. Remaining manual steps are: - some types still missing - declaration of decorators - remove destructuring args See #2686. --- .../processors/readTypeScriptModules.js | 6 ++++++ .../services/tsParser/getExportDocType.js | 4 +++- .../templates/type-definition.template.html | 14 +++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/docs/dgeni-package/processors/readTypeScriptModules.js b/docs/dgeni-package/processors/readTypeScriptModules.js index 71b499764c..a294543180 100644 --- a/docs/dgeni-package/processors/readTypeScriptModules.js +++ b/docs/dgeni-package/processors/readTypeScriptModules.js @@ -68,6 +68,10 @@ module.exports = function readTypeScriptModules(tsParser, readFilesProcessor, mo exportDoc.members = []; for(var memberName in resolvedExport.members) { + // FIXME(alexeagle): why do generic type params appear in members? + if (memberName === 'T') { + continue; + } log.silly('>>>>>> member: ' + memberName + ' from ' + exportDoc.id + ' in ' + moduleDoc.id); var memberSymbol = resolvedExport.members[memberName]; var memberDoc = createMemberDoc(memberSymbol, exportDoc, basePath, parseInfo.typeChecker); @@ -227,6 +231,8 @@ module.exports = function readTypeScriptModules(tsParser, readFilesProcessor, mo } if (parameter.type) { paramText += ':' + getType(sourceFile, parameter.type); + } else { + paramText += ': any'; } return paramText.trim(); }); diff --git a/docs/dgeni-package/services/tsParser/getExportDocType.js b/docs/dgeni-package/services/tsParser/getExportDocType.js index b2fbb40f04..72aae26df2 100644 --- a/docs/dgeni-package/services/tsParser/getExportDocType.js +++ b/docs/dgeni-package/services/tsParser/getExportDocType.js @@ -45,7 +45,9 @@ module.exports = function getExportDocType(log) { var node = symbol.valueDeclaration; while(node) { if ( node.flags & 0x2000 /* const */) { - return 'const'; + // DefinitelyTyped is still TS 1.4 so const is not allowed. + // https://github.com/borisyankov/DefinitelyTyped/issues/4564 + return 'var'; // change to const when targetting TS 1.5 } node = node.parent; } diff --git a/docs/dgeni-package/templates/type-definition.template.html b/docs/dgeni-package/templates/type-definition.template.html index 18dce0e47b..80698aca3b 100644 --- a/docs/dgeni-package/templates/type-definition.template.html +++ b/docs/dgeni-package/templates/type-definition.template.html @@ -6,7 +6,7 @@ {$ '*/' | indent(level, true) | replace(r/\n$/, "") $}{% endif -%} {%- endmacro -%} -// Type definitions for Angular v{$ versionInfo.currentVersion.full $} +// Type definitions for Angular v{$ versionInfo.currentVersion.full | replace(r/\+/, "_") $} // Project: http://angular.io/ // Definitions by: angular team // Definitions: https://github.com/borisyankov/DefinitelyTyped @@ -34,8 +34,8 @@ declare module "angular2/angular2" { // See https://github.com/Microsoft/TypeScript/issues/1168 class BaseException /* extends Error */ { - message; - stack; + message: string; + stack: string; toString(): string; } } @@ -53,15 +53,15 @@ declare module "{$ module.id $}" { {$ commentBlock(member, 5) $} {$ member.name $} {%- if member.parameters %}({% for param in member.parameters %}{$ param $}{% if not loop.last %}, {% endif %}{% endfor %}){%- endif %} - {%- if member.returnType %}: {$ member.returnType $}{% endif -%} + {%- if member.returnType %}: {$ member.returnType $}{%- else -%}: any{% endif -%} ; {%- endfor %} } {%- elif export.docType == 'enum' %} { - {%- for member in export.members %} - {$ member $}{% if not loop.last %}, - {%- endif -%} + {%- for member in export.members %} + {$ member $}{% if not loop.last %}, + {%- endif -%} {%- endfor %} }