@@ -1008,15 +1008,40 @@ if (y) {
1008
1008
<T extends {} | null | undefined>(x: T) => x ? 1 : 0;
1009
1009
` ,
1010
1010
errors : [
1011
- { messageId : 'conditionErrorNullableObject' , line : 2 , column : 37 } ,
1012
- { messageId : 'conditionErrorNullableObject' , line : 3 , column : 33 } ,
1013
- { messageId : 'conditionErrorNullableObject' , line : 4 , column : 52 } ,
1011
+ {
1012
+ messageId : 'conditionErrorNullableObject' ,
1013
+ line : 2 ,
1014
+ column : 37 ,
1015
+ suggestions : [
1016
+ {
1017
+ messageId : 'conditionFixCompareNullish' ,
1018
+ output : 'declare const x: object | null; if (x != null) {}' ,
1019
+ } ,
1020
+ ] ,
1021
+ } ,
1022
+ {
1023
+ messageId : 'conditionErrorNullableObject' ,
1024
+ line : 3 ,
1025
+ column : 33 ,
1026
+ suggestions : [
1027
+ {
1028
+ messageId : 'conditionFixCompareNullish' ,
1029
+ output : ` (x?: { a: number }) => x == null;` ,
1030
+ } ,
1031
+ ] ,
1032
+ } ,
1033
+ {
1034
+ messageId : 'conditionErrorNullableObject' ,
1035
+ line : 4 ,
1036
+ column : 52 ,
1037
+ suggestions : [
1038
+ {
1039
+ messageId : 'conditionFixCompareNullish' ,
1040
+ output : ` <T extends {} | null | undefined>(x: T) => (x != null) ? 1 : 0;` ,
1041
+ } ,
1042
+ ] ,
1043
+ } ,
1014
1044
] ,
1015
- output : `
1016
- declare const x: object | null; if (x != null) {}
1017
- (x?: { a: number }) => x == null;
1018
- <T extends {} | null | undefined>(x: T) => (x != null) ? 1 : 0;
1019
- ` ,
1020
1045
} ) ,
1021
1046
1022
1047
// nullable string in boolean context
@@ -1620,18 +1645,75 @@ if (x) {
1620
1645
obj && 1 || 0
1621
1646
` ,
1622
1647
errors : [
1623
- { messageId : 'conditionErrorNullableObject' , line : 3 , column : 10 } ,
1624
- { messageId : 'conditionErrorNullableObject' , line : 4 , column : 10 } ,
1625
- { messageId : 'conditionErrorNullableObject' , line : 5 , column : 9 } ,
1626
- { messageId : 'conditionErrorNullableObject' , line : 6 , column : 9 } ,
1627
- ] ,
1628
- output : `
1648
+ {
1649
+ messageId : 'conditionErrorNullableObject' ,
1650
+ line : 3 ,
1651
+ column : 10 ,
1652
+ suggestions : [
1653
+ {
1654
+ messageId : 'conditionFixCompareNullish' ,
1655
+ output : `
1629
1656
declare const obj: { x: number } | null;
1630
1657
(obj == null) ? 1 : 0
1658
+ !obj
1659
+ obj || 0
1660
+ obj && 1 || 0
1661
+ ` ,
1662
+ } ,
1663
+ ] ,
1664
+ } ,
1665
+ {
1666
+ messageId : 'conditionErrorNullableObject' ,
1667
+ line : 4 ,
1668
+ column : 10 ,
1669
+ suggestions : [
1670
+ {
1671
+ messageId : 'conditionFixCompareNullish' ,
1672
+ output : `
1673
+ declare const obj: { x: number } | null;
1674
+ !obj ? 1 : 0
1631
1675
obj == null
1676
+ obj || 0
1677
+ obj && 1 || 0
1678
+ ` ,
1679
+ } ,
1680
+ ] ,
1681
+ } ,
1682
+ {
1683
+ messageId : 'conditionErrorNullableObject' ,
1684
+ line : 5 ,
1685
+ column : 9 ,
1686
+ suggestions : [
1687
+ {
1688
+ messageId : 'conditionFixCompareNullish' ,
1689
+ output : `
1690
+ declare const obj: { x: number } | null;
1691
+ !obj ? 1 : 0
1692
+ !obj
1632
1693
;(obj != null) || 0
1694
+ obj && 1 || 0
1695
+ ` ,
1696
+ } ,
1697
+ ] ,
1698
+ } ,
1699
+ {
1700
+ messageId : 'conditionErrorNullableObject' ,
1701
+ line : 6 ,
1702
+ column : 9 ,
1703
+ suggestions : [
1704
+ {
1705
+ messageId : 'conditionFixCompareNullish' ,
1706
+ output : `
1707
+ declare const obj: { x: number } | null;
1708
+ !obj ? 1 : 0
1709
+ !obj
1710
+ obj || 0
1633
1711
;(obj != null) && 1 || 0
1634
1712
` ,
1713
+ } ,
1714
+ ] ,
1715
+ } ,
1716
+ ] ,
1635
1717
} ,
1636
1718
] ,
1637
1719
} ) ;
0 commit comments