Typescript:使用UNION运算符时出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript:使用UNION运算符时出错相关的知识,希望对你有一定的参考价值。
我在Typescript中使用OR运算符来定义乘积可以是ProductI
或CartResponseInterface.Product
类型
结构为
product: ProductI | CartResponseInterface.Product
但是当我尝试获取ID并将其存储在变量productId
中时,为>]
productId= product.id || product.productId
出现以下错误
Error:1 Property 'id' does not exist on type 'ProductI | Product'. Property 'id' does not exist on type 'Product'.ts(2339) Error2: Property 'productId' does not exist on type 'ProductI | Product'. Property 'productId' does not exist on type 'ProductI'.ts(2339)
product.model.ts
export interface ProductI { id?: string; name: string; price: number; . . . }
cart-response.model.ts
export interface Product { productId: string; name: string; totalPrice: number; . . . }
有人可以告诉我如何解决吗?
我在Typescript中使用OR运算符定义产品可以是ProductI类型或CartResponseInterface.Product结构为产品:ProductI | CartResponseInterface.Product但是当...
答案
您可以使用Type Assertion强制类型,然后检查产品的ID。
另一答案
如果只想在使用对象时键入check,那么Dane Brouwer's answer是解决方法。尽管不是最漂亮的解决方案,但(目前)这是区分接口的唯一方法。
另一答案
https://stackblitz.com/edit/typescript-interface-inheritance
以上是关于Typescript:使用UNION运算符时出错的主要内容,如果未能解决你的问题,请参考以下文章
从 Typescript 中的 union 引用 Complex 类型
使用 UNION 时无法识别 json[] 类型的相等运算符