typescript 在下面的getOptionAt函数中给出Property 'text' does not exist on type 'string'
的错误。
如果text
属性只在options[ix]是一个对象时被访问,为什么它把它当作一个字符串?
type Options = Array<string|{
text: string;
disabled?: boolean;
}>
let options: Options = [
"item",
{
text: "disabledItem",
disabled: true
}
];
function getOptionAt(ix: number) {
// ERROR: `Property 'text' does not exist on type 'string'`
return typeof options[ix] === 'object' ? options[ix].text : options[ix];
}
1条答案
按热度按时间8iwquhpp1#
您需要将
options[ix].text
的options[ix]
强制转换为包含text
属性的类型。