wx.request 请求体和返回增加泛型
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- typescript
- Lĩnh vực
- api
Hướng nghiên cứu
Bắt đầu từ khai báo kiểu của wx.request và kiểm tra các định nghĩa liên quan của ResponseCallback và PostTempOptions được hiển thị trong issue. Xác nhận cách các kiểu của request-body và response hiện đang được biểu diễn, sau đó đảm bảo cả hai đều có thể được cung cấp dưới dạng generic để bên gọi không cần thêm các as casts.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
注意看代码中的 OUT 和 IN,这样做的好处是不需要额外的使用 as 语句了
async function CustomRequest<
OUT extends string | WechatMiniprogram.IAnyObject | ArrayBuffer =
| string
| WechatMiniprogram.IAnyObject
| ArrayBuffer,
IN extends string | WechatMiniprogram.IAnyObject | ArrayBuffer =
| string
| WechatMiniprogram.IAnyObject
| ArrayBuffer
>({ data, url, method }: PostTempOptions<IN>, options?: API.IRequestOptions): Promise<OUT> {
// 没有token就赋值,避免每次都从缓存中获取,缓存获取数据非常消耗时间
if (!token || options?.refreshToken) {
token = wx.getStorageSync('token');
}
return new Promise((resolve, reject) => {
// NOTE: 主要看这里,OUT请求回调,IN则是附带数据
wx.request<ResponseCallback<OUT>, IN>({
url: PREFIX + url,
header: { Authorization: 'Bearer ' + token },
method: method ?? 'POST',
data: data,
timeout: 2000,
success: (res) => {
if (res.data.error_code === 401) {
reject(new RequestError('请登录', 401))
}
if (!res.data.success) {
reject(new RequestError(res.data.error_message!, res.data.error_code!))
}
resolve(res.data.data)
},
fail: (err) => {
reject(err)
}
});
})
}
- Ngôn ngữ chính
- TypeScript
- Star
- 804
- Fork
- 116
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của wechat-miniprogram/api-typings
-
getBLEMTU没有类型定义Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
组件的lifetimes定义里面,没有routeDone函数Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Canvas.drawImage的API和实际不符Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 62/100
Tất cả issue của wechat-miniprogram/api-typings
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
logto-io/logto#9837 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
lingdojo/kana-dojo#32964 · 1 bình luận · 5 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Documentation status: needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
mastra-ai/mastra#28194 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
priority-low refactor-3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 3 ngày