我正在使用Angular CLI的测试框架和枚举类型。我正在创建这样的枚举(在someenum.ts中):
private someEnum = SomeEnum.Val0;
并像这样使用它(在app.component.ts中):
ng serve
如果我使用this.someEnum = 0 /* Val0 */;
运行此代码,它运行正常,并且生成的js将其定义为:
ng test
应该如何。
但是,当我尝试使用ERROR in src/app/app.component.ts(10,14): error TS2304: Cannot find name 'SomeEnum'.
执行测试时,它会因编译错误而失败:
$urls = array(
'https://www.smilesbycarroll.com/',
'https://hurstbournedentalcare.com/',
'https://www.dentalhc.com/',
'https://www.springhurstdentistry.com/',
'https://www.smilesbycarroll.com/',
'www.drhugopavon.com/'
);
foreach ($urls as $url) {
$tags = get_meta_tags($url);
if (isset($tags['viewport'])) {
echo "$url tag exist" . "</br>";
}
if (!isset($tags['viewport'])) {
echo "$url tag doesnt exist" . "</br>";
}
}
我认为这个问题与测试环境的打字稿配置有关,但是我无法弄清楚,有人对此有一个很好的解释吗?
答案 0 :(得分:0)
我只是遇到了同样的问题。 您可以通过导出枚举来修复它。 例如:
languageEnums.ts
export const enum Languages {
ENGLISH = "en-US",
SWEDISH = "sv-SE"
}
app.component.ts
import { Languages } from '../assets/constants';
...
private language = Languages.ENGLISH;
我在constants
文件夹中创建了一个新的assets
文件夹,其中包含所有枚举。
每个文件一个枚举!
您无需将它们导入app.module.ts
或.spec
文件中。
此后,错误已修复。