【问题标题】:Cannot compile my angular application successfully无法成功编译我的 Angular 应用程序
【发布时间】:2019-05-12 19:13:07
【问题描述】:

我有一个名为 mock-values.ts 的文件,其中只有:

export const TIMES: Time[] = [
  { i: '8:00', v: '8' }, { i: '8:30', v: '8:30' },
  { i: '9:00', v: '9' }, { i: '9:30', v: '9:30' },
  { i: '10:00', v: '10' }, { i: '10:30', v: '10:30' },
  { i: '11:00', v: '11' }
];
export const MINUTES: Minute[] = [
  { half_hour: '30' },
  { half_hour: '60' },
  { half_hour: '90' }
];

当我运行 ng serve 时,我遇到了这个错误消息ERROR in src/app/meeting-form/mock-values.ts(1,21): error TS2304: Cannot find name 'Time'. src/app/meeting-form/mock-values.ts(13,23): error TS2304: Cannot find name 'Minute'.

这是我在form.component.ts 中的导入

import { TIMES, MINUTES } from './mock-values';
  times = TIMES;
  minutes = MINUTES;

大约一分钟后它编译成功,因为它最终找到了它。有什么方法可以让 Angular 冷静下来或者让编译器的过程更轻松?

【问题讨论】:

  • TimeMinute 定义在哪里?
  • 以上代码中的时间和分钟是什么。它们是您创建的类或接口吗?
  • 在我的 form.component 中看起来像这样 times = TIMES; minutes = MINUTES;
  • 您必须导入 TimeMinute 才能将它们用作类型

标签: angular typescript import compiler-errors export


【解决方案1】:

看起来 Time 和 Minute 不是预定义的类型。请尝试更改代码如下:

export const TIMES = [
  { i: '8:00', v: '8' }, { i: '8:30', v: '8:30' },
  { i: '9:00', v: '9' }, { i: '9:30', v: '9:30' },
  { i: '10:00', v: '10' }, { i: '10:30', v: '10:30' },
  { i: '11:00', v: '11' }
];
export const MINUTES = [
  { half_hour: '30' },
  { half_hour: '60' },
  { half_hour: '90' }
];

【讨论】:

  • 我不明白为什么我必须导入任何东西。它只是一个数据文件,因此代码更干净。没有导入路径,只有导出。我尝试了这个解决方案,但它所做的只是将问题转移到导入而不是对象。
  • 它可以导出为普通对象,然后将它们投射到导入端。我不明白为什么,如果你想在多个地方使用它,你每次都必须这样做。导入数据文件中的类型并在其中键入要容易得多。
猜你喜欢
  • 2019-08-12
  • 1970-01-01
  • 2021-12-21
  • 2021-11-01
  • 1970-01-01
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多