fix(compiler): allow --noImplicitAny
This commit is contained in:
@ -60,6 +60,13 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
|
||||
importsWithPrefixes = new Map<string, string>();
|
||||
|
||||
visitType(t: o.Type, ctx: EmitterVisitorContext, defaultType: string = 'any') {
|
||||
if (isPresent(t)) {
|
||||
t.visitType(this, ctx);
|
||||
} else {
|
||||
ctx.print(defaultType);
|
||||
}
|
||||
}
|
||||
visitExternalExpr(ast: o.ExternalExpr, ctx: EmitterVisitorContext): any {
|
||||
this._visitIdentifier(ast.value, ast.typeParams, ctx);
|
||||
return null;
|
||||
@ -73,11 +80,8 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
} else {
|
||||
ctx.print(`var`);
|
||||
}
|
||||
ctx.print(` ${stmt.name}`);
|
||||
if (isPresent(stmt.type)) {
|
||||
ctx.print(`:`);
|
||||
stmt.type.visitType(this, ctx);
|
||||
}
|
||||
ctx.print(` ${stmt.name}:`);
|
||||
this.visitType(stmt.type, ctx);
|
||||
ctx.print(` = `);
|
||||
stmt.value.visitExpression(this, ctx);
|
||||
ctx.println(`;`);
|
||||
@ -119,12 +123,8 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
ctx.print(`private `);
|
||||
}
|
||||
ctx.print(field.name);
|
||||
if (isPresent(field.type)) {
|
||||
ctx.print(`:`);
|
||||
field.type.visitType(this, ctx);
|
||||
} else {
|
||||
ctx.print(`: any`);
|
||||
}
|
||||
ctx.print(':');
|
||||
this.visitType(field.type, ctx);
|
||||
ctx.println(`;`);
|
||||
}
|
||||
private _visitClassGetter(getter: o.ClassGetter, ctx: EmitterVisitorContext) {
|
||||
@ -132,10 +132,8 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
ctx.print(`private `);
|
||||
}
|
||||
ctx.print(`get ${getter.name}()`);
|
||||
if (isPresent(getter.type)) {
|
||||
ctx.print(`:`);
|
||||
getter.type.visitType(this, ctx);
|
||||
}
|
||||
ctx.print(':');
|
||||
this.visitType(getter.type, ctx);
|
||||
ctx.println(` {`);
|
||||
ctx.incIndent();
|
||||
this.visitAllStatements(getter.body, ctx);
|
||||
@ -158,11 +156,7 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
ctx.print(`${method.name}(`);
|
||||
this._visitParams(method.params, ctx);
|
||||
ctx.print(`):`);
|
||||
if (isPresent(method.type)) {
|
||||
method.type.visitType(this, ctx);
|
||||
} else {
|
||||
ctx.print(`void`);
|
||||
}
|
||||
this.visitType(method.type, ctx, 'void');
|
||||
ctx.println(` {`);
|
||||
ctx.incIndent();
|
||||
this.visitAllStatements(method.body, ctx);
|
||||
@ -173,11 +167,7 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
ctx.print(`(`);
|
||||
this._visitParams(ast.params, ctx);
|
||||
ctx.print(`):`);
|
||||
if (isPresent(ast.type)) {
|
||||
ast.type.visitType(this, ctx);
|
||||
} else {
|
||||
ctx.print(`void`);
|
||||
}
|
||||
this.visitType(ast.type, ctx, 'void');
|
||||
ctx.println(` => {`);
|
||||
ctx.incIndent();
|
||||
this.visitAllStatements(ast.statements, ctx);
|
||||
@ -192,11 +182,7 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
ctx.print(`function ${stmt.name}(`);
|
||||
this._visitParams(stmt.params, ctx);
|
||||
ctx.print(`):`);
|
||||
if (isPresent(stmt.type)) {
|
||||
stmt.type.visitType(this, ctx);
|
||||
} else {
|
||||
ctx.print(`void`);
|
||||
}
|
||||
this.visitType(stmt.type, ctx, 'void');
|
||||
ctx.println(` {`);
|
||||
ctx.incIndent();
|
||||
this.visitAllStatements(stmt.statements, ctx);
|
||||
@ -253,21 +239,13 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
return null;
|
||||
}
|
||||
visitArrayType(type: o.ArrayType, ctx: EmitterVisitorContext): any {
|
||||
if (isPresent(type.of)) {
|
||||
type.of.visitType(this, ctx);
|
||||
} else {
|
||||
ctx.print(`any`);
|
||||
}
|
||||
this.visitType(type.of, ctx);
|
||||
ctx.print(`[]`);
|
||||
return null;
|
||||
}
|
||||
visitMapType(type: o.MapType, ctx: EmitterVisitorContext): any {
|
||||
ctx.print(`{[key: string]:`);
|
||||
if (isPresent(type.valueType)) {
|
||||
type.valueType.visitType(this, ctx);
|
||||
} else {
|
||||
ctx.print(`any`);
|
||||
}
|
||||
this.visitType(type.valueType, ctx);
|
||||
ctx.print(`}`);
|
||||
return null;
|
||||
}
|
||||
@ -294,10 +272,8 @@ class _TsEmitterVisitor extends AbstractEmitterVisitor implements o.TypeVisitor
|
||||
private _visitParams(params: o.FnParam[], ctx: EmitterVisitorContext): void {
|
||||
this.visitAllObjects((param) => {
|
||||
ctx.print(param.name);
|
||||
if (isPresent(param.type)) {
|
||||
ctx.print(`:`);
|
||||
param.type.visitType(this, ctx);
|
||||
}
|
||||
ctx.print(':');
|
||||
this.visitType(param.type, ctx);
|
||||
}, params, ctx, ',');
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user