bce-sdk-js icon indicating copy to clipboard operation
bce-sdk-js copied to clipboard

关于TS类型的一些问题

Open otakustay opened this issue 4 years ago • 5 comments

第一个问题是package.json中没有types字段,所以解析不到:

image

第二个问题是代码库用了export =导出整个,但实际上我觉得应该是named export更合适些?

otakustay avatar Jul 21 '20 09:07 otakustay

另外BosEndpoint这个类型感觉没必要,就用string类型就好了

原因是endpoint很多时候是用配置拼出来的,比如这样:

endpoint: `https://${process.env.BCE_REGION}.bcebos.com`

TS是无法推导这个类型到BosEndpoint上面去的,不得不用as BosEndpoint去搞定,没啥意思

otakustay avatar Jul 21 '20 09:07 otakustay

只能 +1 了

fwh1990 avatar Apr 09 '21 04:04 fwh1990

+1

shenlanchenwei avatar Nov 25 '21 06:11 shenlanchenwei

为啥types在packagejson里这么重要的不处理下?害我研究了半天

sknightq avatar Apr 29 '22 09:04 sknightq

  1. 联系百度官网人员,说明是暂时不支持TS
  2. 我的解决方法是

全局 .d.ts

declare module '@baiducloud/sdk'
declare module '@baiducloud/sdk/dist/baidubce-sdk.bundle'

引用 .ts 文件中

import type SDK from '@baiducloud/sdk/types' 

直接找到类型文件进行使用

PS:另外官方的类型声明文件不太好使,最后我放弃使用了。估计是SDK升级,并没有同步更新 d.ts

peterwang-s avatar Jun 08 '22 07:06 peterwang-s

临时解决办法:

//  module.d.ts

declare module '@baiducloud/sdk' {
  import sdk from '@baiducloud/sdk/types';
  export default sdk;
}

tjx666 avatar Jul 20 '24 12:07 tjx666