【发布时间】:2017-04-05 17:28:51
【问题描述】:
考虑这个例子
interface fooInterface {
bar: any;
}
function(value: fooInterface | string) {
value.bar
}
错误是:类型'(fooInterface | string)'上不存在属性'bar'
我显然做错了什么。我想说的基本上是:value 要么是一个实现 fooInterface 的对象,要么是一个字符串。
我该怎么做?
谢谢
【问题讨论】:
-
是的,联合类型是正确的说法。但是如果它是一个字符串,它就没有
bar属性,所以这样访问它是错误的。你到底想做什么? -
如果你确信值包含 fooInterface 值,你可以通过
(<fooInterface>value).bar或(value as fooInterface).bar让 TypeScript 相信你的真相。
标签: typescript interface typescript-typings