bce-sdk-js
bce-sdk-js copied to clipboard
关于TS类型的一些问题
第一个问题是package.json
中没有types
字段,所以解析不到:
第二个问题是代码库用了export =
导出整个,但实际上我觉得应该是named export更合适些?
另外BosEndpoint
这个类型感觉没必要,就用string
类型就好了
原因是endpoint
很多时候是用配置拼出来的,比如这样:
endpoint: `https://${process.env.BCE_REGION}.bcebos.com`
TS是无法推导这个类型到BosEndpoint
上面去的,不得不用as BosEndpoint
去搞定,没啥意思
只能 +1 了
+1
为啥types在packagejson里这么重要的不处理下?害我研究了半天
- 联系百度官网人员,说明是暂时不支持TS
- 我的解决方法是
全局 .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
临时解决办法:
// module.d.ts
declare module '@baiducloud/sdk' {
import sdk from '@baiducloud/sdk/types';
export default sdk;
}