Skip to content

Module not found when using type from .d.ts file #4874

Closed
@Buslowicz

Description

@Buslowicz

I started this issue on angular/angular issues, but seems to be related to CLI, so just copy-pasting the issue here :).

I'm submitting a ...

[x] bug report

Current behavior
When assigning a custom type (like Post, or User) to a decorated property (with either ng decorator like @Input() or a custom one), where type is declared in d.ts file, angular throws an error:

ERROR in ./src/app/app.component.ts
Module not found: Error: Can't resolve './types' in '/home/dracco/projects/ng2/src/app'
 @ ./src/app/app.component.ts 11:0-31
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi webpack-dev-server/client?http://localhost:4200/ ./src/main.ts
webpack: Failed to compile.

This does not happen if:

  • type is added through generic (like Array<Post>) OR
  • no decorator is added to property OR
  • file with declaration has .ts extension instead of .d.ts

Expected behavior
No error should be thrown. property should have given type.

Minimal reproduction of the problem with instructions

  1. Run ng init to create a new Angular project.
  2. Create a d.ts file in app folder
  3. Add an exported interface to the .d.ts file
  4. Import above interface in component file
  5. Add a property with decorator and above type (e.g. @Input() prop: MyType)
  6. Run ng serve

What is the motivation / use case for changing the behavior?
The default workflow in TypeScript suggests keeping declarations and interfaces in .d.ts file. Simple Angular components might not use Observables and still accept data from the host. I am actually surprised nobody mentioned and solved it so far as it is pretty severe (it also happens in 4.0.0-beta.8).

Please tell us about your environment:

  • OS: linux x64 (Ubuntu 16.10)
  • Angular version: 2.3.1, 2.2.4, 4.0.0-beta.8
  • Angular CLI version: 1.0.0-beta.28.3
  • Node (for AoT issues): 7.5.0
  • NPM: 4.1.2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions