Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;“进口类型”;导致单元测试失败_Javascript_Angular_Typescript_Unit Testing_Storybook - Fatal编程技术网

Javascript &引用;“进口类型”;导致单元测试失败

Javascript &引用;“进口类型”;导致单元测试失败,javascript,angular,typescript,unit-testing,storybook,Javascript,Angular,Typescript,Unit Testing,Storybook,我有两个组件,看起来像这样: 父组件 @组件({ 模板:“”, 供应商:[ {provide:PARENT_组件,useExisting:forwardRef(()=>ParentComponent)} ] }) 导出类ParentComponent{} 子组件 @组件({ 模板:“” }) 导出类MyComponent{ 建造师( @注入(父组件)专用只读父组件:父组件 ){} } 注入令牌: export const PARENT_COMPONENT=new InjectionToken

我有两个组件,看起来像这样:

父组件

@组件({
模板:“”,
供应商:[
{provide:PARENT_组件,useExisting:forwardRef(()=>ParentComponent)}
]
})
导出类ParentComponent{}
子组件

@组件({
模板:“”
})
导出类MyComponent{
建造师(
@注入(父组件)专用只读父组件:父组件
){}
}
注入令牌:

export const PARENT_COMPONENT=new InjectionToken('ParentComponentToken');
在子组件中,当我执行如下导入时:

从“../parent.component”导入类型{ParentComponent};
我的单元测试全部中断并抛出以下错误:

ReferenceError:未定义ParentComponent

但是,我的故事书工作正常,组件工作正常

如果通过删除
类型来更改导入,则如下所示:

从“../parent.component”导入{ParentComponent};
故事书不起作用,但单元测试确实起作用。为什么这会给我带来麻烦?我怎样才能修好它


如果我将构造函数更改为使用
any
而不是
ParentComponent
,那么单元测试和故事书都可以工作。但是,我并不真的想这样做,因为这样代码就不是强类型的。

奇怪为什么要将父组件提供给它自己?这是故事书大会吗?你什么意思?我不认为我是在提供它自己…也许我误读了。。。在component decorator中,您有一个具有父组件注入令牌的providers数组,该令牌为您不希望在此处仅导入类型的同一组件提供forward ref。您需要一个实现。所以…呃..不要使用
导入类型
。这回答了你的问题吗?也许我做错了(它确实有效)?我试图在子对象中提供对父对象的引用,以便子对象可以访问其父对象。