Closed
Description
I'm submitting a ... (check one with "x")
[x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
Current behavior
I have a constructor that uses @Inject
to get a dependency, and references an interface for that the dep, constructor( @Inject(FirebaseApp) _fbApp: firebase.app.App)
. When I compile the lib with ngc
, I get this error:
Error: angularfire2/src/auth/firebase_sdk_auth_backend.ts:27:1: Error encountered in metadata generated for exported symbol 'FirebaseSdkAuthBackend':
angularfire2/src/auth/firebase_sdk_auth_backend.ts:30:45: Metadata collected contains an error that will be reported at runtime: Expression form not supported.
{"__symbolic":"error","message":"Expression form not supported","line":29,"character":44}
at angularfire2/node_modules/@angular/tsc-wrapped/src/collector.js:514:27
at Array.forEach (native)
at validateMetadata (angularfire2/node_modules/@angular/tsc-wrapped/src/collector.js:502:42)
at MetadataCollector.getMetadata (angularfire2/node_modules/@angular/tsc-wrapped/src/collector.js:374:17)
at MetadataWriterHost.writeMetadata (angularfire2/node_modules/@angular/tsc-wrapped/src/compiler_host.js:111:51)
at MetadataWriterHost.writeFile (angularfire2/node_modules/@angular/tsc-wrapped/src/compiler_host.js:103:19)
at Object.writeFile (angularfire2/node_modules/typescript/lib/typescript.js:45364:132)
at Object.writeFile (angularfire2/node_modules/typescript/lib/typescript.js:7597:14)
at writeEmittedFiles (angularfire2/node_modules/typescript/lib/typescript.js:37854:20)
at doEmit (angularfire2/node_modules/typescript/lib/typescript.js:37714:17)
If I change the type to any
, compilation succeeds.
Expected behavior
I would expect to be able to reference an interface in a constructor in conjunction with @Inject
.
Minimal reproduction of the problem with instructions
ngc
this thing:
import { NgModule, Inject, Injectable } from '@angular/core';
import { Http } from '@angular/http';
export interface Foo {}
@Injectable()
export class MyClass {
constructor(@Inject(Http) http: Foo) {}
}
@NgModule({
providers: [MyClass]
})
export class MyModule {}
- Angular version: 2.0.X
@angular/compiler-cli@2.1.2
@angular/core@2.1.2
- Node (for AoT issues):
node --version
=
Node 5.10.1
Metadata
Metadata
Assignees
Labels
No labels