mya*_*sev 0 typescript typescript1.4
以下代码将产生错误:无法调用其类型缺少调用签名的表达式.
如果接口相同(例如都包含'a'),一切正常.为什么?
interface Foo { a:string }
interface Bar { b:string }
var stuff: Foo[] | Bar[];
function doStuff(thing: Foo | Bar) {
var index = stuff.indexOf(thing);
}
Run Code Online (Sandbox Code Playgroud)
现在stuff是Foo数组和Bar数组的联合.您正试图检查类型(Foo或Bar)的项目.如果stuff实际类型为Foo []且thing实际类型为Bar,则表示类型不匹配.
东西的类型应该是(Foo或Bar)的数组.
var stuff: (Foo | Bar)[];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |