我想在Angular中访问可以具有两种类型的对象的属性。
我已经声明了这样一个对象:parentFolder: FolderNode | File
,但是当我尝试访问parentFolder.id
时,属性id
在Webstorm中变成红色。
我要提到的是File
没有id
属性。
我的代码看起来像
renameFolder(parentFolder: FolderNode | File, folderName: string):
Observable<FolderNode | File>
{
return this.http.put<FolderNode | File>(apiVersion + 'files/' + parentFolder.generatedId || parentFolder.id,
{
guid: parentFolder.id || parentFolder.generatedId,
parent: parentFolder.parent.id || parentFolder.parent,
name: folderName
});
}
我认为这是比像[]
这样简单地使用parentFolder['id']
更好的方法。
答案 0 :(得分:1)
您可以编写如下
(<FolderNode>parentFolder).id || (<File>parentFolder).generatedId,