小编Кat*_*tya的帖子

Angular的tsconfig.json文件中的lib数组中有什么dom?

在我的Angular 6项目中,在tsconfig.json和ts.config.spec.json中,我有以下部分:

"lib": [
      "es2016",
      "dom"
    ]
Run Code Online (Sandbox Code Playgroud)

dom为了什么?

这里的官方文档说:“ ...您可以排除不想包含在项目中的声明,例如,如果您正在使用--lib es5,es6在节点项目上工作,则可以排除DOM。”

但是我不确定这在实践中意味着什么。我们不指定“您不需要的任何声明”。

在添加domlibtsconfig.spec.ts中的数组之前,我的测试完全失败了。这是做什么的?

javascript config typescript angular

5
推荐指数
1
解决办法
628
查看次数

Karma 测试 NullInjectorError: No provider for InjectionToken fileName

我知道 Stackoverflow 上有一些类似的问题,但它们并没有完全回答我的问题。

在我的 Angular 项目中运行 Karma 测试时,出现以下错误: NullInjectorError: No provider for InjectionToken app.config!

我知道在我的 .spec 文件中我需要为 InjectionToken 指定一个提供者,但我不确定确切的语法。

这是我的app.config文件:

export let APP_CONFIG = new InjectionToken("app.config");
export const AppConfig: IAppConfig = {
  relativeDateLimit: 604800000,
  dateFormat: 'MM-DD-YYYY',
  ...
}
export const AppConfig: IAppConfig = {
  relativeDateLimit: 604800000,
  dateFormat: 'MM-DD-YYYY',
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后在 .component.ts 文件中,我在构造函数中像这样使用它:

import { APP_CONFIG } from '../../app.config';

constructor(@Inject(APP_CONFIG) public appConfig) {}
Run Code Online (Sandbox Code Playgroud)

现在在这个组件的 .spec.ts 文件中,我知道我需要为 InjectionToken

我试着这样做:

import { InjectionToken } from "@angular/core";
...

beforeEach(async(() => { …
Run Code Online (Sandbox Code Playgroud)

unit-testing karma-jasmine angular

5
推荐指数
1
解决办法
1万
查看次数