Releases: mattpocock/ts-reset
Releases · mattpocock/ts-reset
v0.4.2
0.4.2
Minor Changes
-
ce9db42: Added support for widening in
Array.lastIndexOf
,Array.indexOf
,ReadonlyArray.lastIndexOf
andReadonlyArray.indexOf
. -
107dfc2: Changed the array.includes on readonly arrays to NOT be a type predicate. Before this change, this perfectly valid code would not behave correctly.
type Code = 0 | 1 | 2; type SpecificCode = 0 | 1; const currentCode: Code = 0; // Create an empty list of subset type const specificCodeList: ReadonlyArray<SpecificCode> = []; // This will be false, since 0 is not in [] if (specificCodeList.includes(currentCode)) { currentCode; // -> SpecificCode } else { // This branch will be entered, and ts will think z is 2, when it is actually 0 currentCode; // -> 2 }
Removing the type predicate brings ts-reset closer towards correctness.
-
4765413: author: @mefechoel
Added the
Map.has
rule.Similar to
.includes
orSet.has()
,Map.has()
doesn't let you pass members that don't exist in the map's keys:// BEFORE const userMap = new Map([ ["matt", 0], ["sofia", 1], [2, "waqas"], ] as const); // Argument of type '"bryan"' is not assignable to // parameter of type '"matt" | "sofia" | "waqas"'. userMap.has("bryan");
With the rule enabled,
Map
follows the same semantics asSet
.// AFTER import "@total-typescript/ts-reset/map-has"; const userMap = new Map([ ["matt", 0], ["sofia", 1], [2, "waqas"], ] as const); // .has now takes a string as the argument! userMap.has("bryan");
Patch Changes
- b15aaa4: Fixed an oversight with the initial
set-has
implementation by adding support toReadonlySet
.
v0.3.7
Patch Changes
- Added license and switched to MIT
v0.3.6
v0.3.5
Patch Changes
- Another fix for deploy process.
v0.3.4
Patch Changes
- Fixed an issue where dist folder was not deployed.
v0.3.3
Patch Changes
- Fixed a bug where 0n was not being filtered out by filter-boolean
v0.3.2
Patch Changes
- Removed the ability to use Set.has as a type predicate. This ensures that Set.has never sets the checked element to never.
v0.3.1
Patch Changes
- Fixed a bug where Array.includes was returning a predicate, which gave false positives.
v0.3.0
v0.2.1
Patch Changes
- Readme tweak