【发布时间】:2017-12-28 02:45:36
【问题描述】:
我有以下 TypeScript 代码来创建 ApolloClient:
return new ApolloClient({
dataIdFromObject: (o) => o.uuid
});
编译器给我以下错误:
TS2339:“对象”类型上不存在属性“uuid”
我尝试按如下方式进行类型转换:
interface DomainObject {
uuid: string
}
...
return new ApolloClient({
dataIdFromObject: (<DomainObject>o) => o.uuid
});
但是现在编译器变得非常混乱,代码周围的几行代码开始出现错误。具体来说,上面的转换给出了这个错误:
TS17008:JSX 元素''没有对应的结束标签
显然它认为这是 JSX 代码。
我该如何解决这个问题?
提前致谢。
【问题讨论】:
-
o这里是参数声明,不是表达式。试试(o: DomainObject) => o.uuid -
@BenjaminHodgson,感谢您的澄清。奇迹般有效!如果您可以将其作为答案,我会将其标记为正确。