[RFC] tsconfig 是否应该开启 strict 或 strictNullChecks
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- typescript
- Lĩnh vực
- build-system
Hướng nghiên cứu
Bắt đầu bằng việc xem xét tsconfig của repository và ví dụ useMergedState.ts, đặc biệt là khai báo generic gần dòng 19 và effect bắt đầu khoảng dòng 60. Hãy xem issue pro-components được liên kết để có thêm ngữ cảnh, sau đó xác định liệu có phù hợp để bật strict hoặc strictNullChecks hay không và xác định các tiêu chí chấp nhận về tính an toàn kiểu dẫn đến từ đó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
WHY:不开启strictNullChecks的话会忽略所有的 null 和 undefined
举个例子:
useMergedState 中接受了泛型T作为内部的 innerValue 类型,但根据 L60 开始的代码
// Sync value back to `undefined` when it from control to un-control
useLayoutUpdateEffect(() => {
if (!hasValue(value)) {
setInnerValue(value);
}
}, [value]);
实际上 innerValue 的类型是T | undefined,因为没有开启 strictNullChecks 导致没有警告
该函数使用中,需要显性去指定泛型为 T | undefined 才能获取到实际正确的类型,如:
const [v] = useMergedState<string[]>(...) => const [v] = useMergedState<string[] | undefined>(...)
前者的写法,v的类型会忽略 undefined类型,导致后续编码产生错误
以上为我在debug该issue时发现: https://github.com/ant-design/pro-components/issues/6652
个人见解,欢迎讨论😁
- Ngôn ngữ chính
- TypeScript
- Star
- 670
- Fork
- 205
- Merge trung bình
- 15 ngày 17 giờ
- Pull request đã merge (30 ngày)
- 6
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
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 react-component/util
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
react-component/util#816 ·
-
injectCSS method not attaching csp nonce passed to it. it is used in antd components internally Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
react-component/util#671 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
react-component/util#738 · 1 bình luận · 1 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
react-component/util#710 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
react-component/util#647 · 5 bình luận ·
Tất cả issue của react-component/util
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
ontola/atomic-server#1625 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
melgarafael/DeskcommCRM#1451 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
-
bug via-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
bot:ai-assisted component:compact-js status:untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
midnightntwrk/midnight-sdk#403 ·