Angular 2(英雄之旅)教程:src / app / mock-heroes.ts中的错误(1,22):错误TS2307:找不到模块' ./ hero'

时间:2018-03-06 13:36:22

标签: angular

我正在阅读教程并按照它说的做一切,直到我到达教程的这一部分,它会抛出这个错误。我已经定义了英雄类,所以我很困惑为什么它会给我这个错误。我已经重新启动了程序,甚至重新创建了mock-heroes类型脚本。我正在使用Visual Studio代码,所以这里是我的两个文件的代码:

在hero.ts中定义的英雄类:

export class Hero {
    id: number;
    name: string;
}

模拟heroes.ts:

import { Hero } from './hero'; <----- Error is coming from here 

export const HEROES: Hero[] = [
    { id: 11, name: 'Deku' },
    { id: 12, name: 'All Might' },
    { id: 13, name: 'Todoroki' },
    { id: 14, name: 'Naruto' },
    { id: 15, name: 'Ichigo' },
    { id: 16, name: 'Goku' },
    { id: 17, name: 'Vegeta' },
    { id: 18, name: 'Natsu' },
    { id: 19, name: 'Megaman' },
    { id: 20, name: 'One Punch Man' }
  ];

笔记本电脑上的文件夹结构:

angular-tour-of-heroes/src/
    app/
        mock-heroes.ts
        heroes/
            hero.ts 

5 个答案:

答案 0 :(得分:1)

按照Angular Tutorial: create a hero interface的说明,hero.ts的位置应位于app文件夹(此处为src/app/hero.ts)中,并且不要 {{1} }

使用该文件结构,src/app/heroes/hero.ts中的路径应为:

heroes.component.ts

答案 1 :(得分:0)

是的,因为文件夹结构会改变导入,如下所示

import { Hero } from './heroes/hero';

答案 2 :(得分:0)

您的解决方案是将路径更改为:

import { Hero } from './heroes/hero';

答案 3 :(得分:0)

hero.ts移至文件夹src/app/hero.ts而不是src/app/hero/hero.ts

我知道Angular指示创建此hero文件夹。只是解雇它。

答案 4 :(得分:0)

我刚刚遇到了类似的错误

Module not found: Error: Can't resolve '../mock-heroes' in 'E:\Angular\project1\src\app'

ERROR in src/app/hero.service.ts:2:22 - error TS2307: Cannot find module '../hero1' or its corresponding type declarations.

文件夹结构:

project1/src/
          app/
          hero1.ts

我花了一些时间来解决这个错误,最后的问题是我已经导入了另一个文件夹中的文件

从'../hero1.ts'导入{Hero};

如果您注意到'../ hero1',则我的文件夹结构中没有这样的路径 只需删除一个点'./ hero1'即可正确编译代码。

删除点后

从'./hero1'导入{Hero};