我们有一个gRPC回购,它具有创建客户端的JS实现。
/**
* Code generated by protoc-gen-twirp_js v5.0.0, DO NOT EDIT.
* source: domain_service/service.proto
*/
// import our twirp js library dependency
var createClient = require("twirp");
// import our protobuf definitions
var pb = require("./domain_service/service_pb.js");
Object.assign(module.exports, pb);
/**
* Creates a new DomainClient
*/
module.exports.createDomainClient = function(baseurl, extraHeaders, useJSON) {
var rpc = createClient(baseurl, "events.domain_service.Domain", "v5.0.0", useJSON, extraHeaders === undefined ? {} : extraHeaders);
return {
fireDomainEvent: function(data) { return rpc("FireDomainEvent", data, pb.FireDomainEventResponse); }
}
}我使用TS游乐场在同一个文件夹中创建了一个d.ts文件
export function createDomainClient(
baseurl: any,
extraHeaders: any,
useJSON: any
): {
fireDomainEvent: (data: any) => any;
};但是当我试图实现代码时:
import { createDomainClient } from '@MyOrganization/package';
const client = new createDomainClient(
'https://my.url.com', '', false
);我得到以下错误:'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.ts(7009)
我只是尝试将commonJS客户端导入到我的类型记录项目中,在gRPC回购端进行最少的更改。
发布于 2022-10-11 20:26:43
显式设置any类型为client
import { createDomainClient } from '@MyOrganization/package';
const client: any = new createDomainClient(
'https://my.url.com', '', false
);或将构造签名添加到类型How does interfaces with construct signatures work?中。
https://stackoverflow.com/questions/74033724
复制相似问题