Typescript ts protoc gen将列表附加到重复项
我有一个这样的原始(3)信息:Typescript ts protoc gen将列表附加到重复项,typescript,protoc,protogen,Typescript,Protoc,Protogen,我有一个这样的原始(3)信息: message DataAggregated { repeated Data data = 1; } message Data { string example = 1 } 当为这个原型定义生成类型时,单词“List”被附加到重复的字段中,这是为什么?是否有合法的原因?是否有方法停止这个附加?这会引起严重的头痛 export namespace DataAggregated { export type AsObject = {
message DataAggregated {
repeated Data data = 1;
}
message Data {
string example = 1
}
当为这个原型定义生成类型时,单词“List”被附加到重复的字段中,这是为什么?是否有合法的原因?是否有方法停止这个附加?这会引起严重的头痛
export namespace DataAggregated {
export type AsObject = {
dataList: Array<Data.AsObject>,
}
}
这将返回数据
// I cannot use a return interface here as data does not exist in the interface
get() {
return {
data: ['string', 'string']
}
}
从其他服务器调用函数时
export interface ServiceInterface {
get(data: Empty, metadata: Metadata): Observable< DataAggregated.AsObject>;
}
....
const res = get();
console.log(res.data) // TsErr: Property 'data' does not exist on type 'AsObject'.ts(2339)
console.log(res.dataList) // undefined
导出接口服务接口{
获取(数据:空,元数据:元数据):可观察;
}
....
const res=get();
console.log(res.data)//TsErr:类型“AsObject”.ts(2339)上不存在属性“data”
console.log(res.dataList)//未定义
如果您不选择使用类,那么重复字段的键入将变得无用。为什么在GRPC需要数据而不是数据列表时追加列表?这似乎是一种反模式
export interface ServiceInterface {
get(data: Empty, metadata: Metadata): Observable< DataAggregated.AsObject>;
}
....
const res = get();
console.log(res.data) // TsErr: Property 'data' does not exist on type 'AsObject'.ts(2339)
console.log(res.dataList) // undefined