禁止使用'<>'进行类型断言,而使用'as'代替?

时间:2019-08-20 23:35:48

标签: angular typescript jasmine karma-jasmine angular-unit-test

我在规格中有以下测试用例,

it (should create,()=>{
     const url  = (<jasmine.spy> http.get).calls.args(0)[0]
     expect(url).toBe('/api/get')
});  

运行它时,出现以下皮棉错误。

Type assertion using the '<>' is forbidden, use as instead?

有人可以建议帮助吗?

1 个答案:

答案 0 :(得分:1)

来自Type Assertion

  

类型断言

     

as foo<foo>

     

最初添加的语法为<foo>。如下所示:

var foo: any;
var bar = <string> foo; // bar is now of type "string"
     

但是,在JSX中使用<foo>样式断言时,语言语法存在歧义:

var foo = <string>bar;
</string>
     

因此,现在建议您仅使用as foo来保持一致性。

因此,lint警告过时的语法。

因此,在这种情况下,这是新语法:

const url  = (http.get as jasmine.spy).calls.args(0)[0]