diff --git a/packages/desktop-client/src/components/sidebar/Item.tsx b/packages/desktop-client/src/components/sidebar/Item.tsx index 32ec1c87ef66e549207f8e105665b66a8777ac41..043e44d4123d6ea6b49060b09cf0cd6d3d46484c 100644 --- a/packages/desktop-client/src/components/sidebar/Item.tsx +++ b/packages/desktop-client/src/components/sidebar/Item.tsx @@ -13,7 +13,9 @@ import ItemContent from './ItemContent'; type ItemProps = { title: string; - Icon: ComponentType<SVGProps<SVGElement>>; + Icon: + | ComponentType<SVGProps<SVGElement>> + | ComponentType<SVGProps<SVGSVGElement>>; to?: string; children?: ReactNode; style?: CSSProperties; diff --git a/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx b/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx index dbe355c35e791d93a8831dcb80147788fb870af5..0780acbfb4ecdd382e851713c25c86ec8574a761 100644 --- a/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx +++ b/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx @@ -16,7 +16,9 @@ const fontWeight = 600; type SecondaryItemProps = { title: string; to?: string; - Icon?: ComponentType<SVGProps<SVGElement>>; + Icon?: + | ComponentType<SVGProps<SVGElement>> + | ComponentType<SVGProps<SVGSVGElement>>; style?: CSSProperties; onClick?: MouseEventHandler<HTMLDivElement>; bold?: boolean; diff --git a/packages/desktop-client/src/components/sort.tsx b/packages/desktop-client/src/components/sort.tsx index 10e7d963d110ddb281a8197ec1ee3d4c19a1544a..a3ce6cb883ce9d16bd94891ba21517739249c8f4 100644 --- a/packages/desktop-client/src/components/sort.tsx +++ b/packages/desktop-client/src/components/sort.tsx @@ -72,7 +72,7 @@ export function useDraggable<T>({ } export type OnDropCallback = ( - id: unknown, + id: string, dropPos: DropPosition, targetId: unknown, ) => Promise<void> | void; @@ -86,7 +86,7 @@ type UseDroppableArgs = { onLongHover?: OnLongHoverCallback; }; -export function useDroppable({ +export function useDroppable<T extends { id: string }>({ types, id, onDrop, @@ -95,7 +95,11 @@ export function useDroppable({ const ref = useRef(null); const [dropPos, setDropPos] = useState<DropPosition>(null); - const [{ isOver }, dropRef] = useDrop({ + const [{ isOver }, dropRef] = useDrop< + { item: T }, + unknown, + { isOver: boolean } + >({ accept: types, drop({ item }) { onDrop(item.id, dropPos, id); diff --git a/packages/desktop-client/src/components/table.tsx b/packages/desktop-client/src/components/table.tsx index b85928335f1f16c902345cb63d054b757c5c5c04..92e2e833a472a44c3672d01a10f1cde83174ceaf 100644 --- a/packages/desktop-client/src/components/table.tsx +++ b/packages/desktop-client/src/components/table.tsx @@ -660,7 +660,7 @@ export function SelectCell({ type SheetCellValueProps = { binding: Binding; type: string; - getValueStyle?: (value: unknown) => CSSProperties; + getValueStyle?: (value: string | number) => CSSProperties; formatExpr?: (value) => string; unformatExpr?: (value: string) => unknown; privacyFilter?: ConditionalPrivacyFilterProps['privacyFilter']; diff --git a/packages/loot-core/package.json b/packages/loot-core/package.json index 44c8460f753cdb36b2633135e508c19533c6da66..d6c155b264f448b920e85fecff682f2694e8bf0c 100644 --- a/packages/loot-core/package.json +++ b/packages/loot-core/package.json @@ -46,7 +46,7 @@ "@swc/core": "^1.3.82", "@swc/helpers": "^0.5.1", "@swc/jest": "^0.2.29", - "@types/better-sqlite3": "^7.6.7", + "@types/better-sqlite3": "^7.6.8", "@types/jest": "^27.5.0", "@types/jlongster__sql.js": "npm:@types/sql.js@latest", "@types/pegjs": "^0.10.3", diff --git a/packages/loot-core/src/server/sync/sync.property.test.ts b/packages/loot-core/src/server/sync/sync.property.test.ts index 9532405d48662691b3e6bd975fb340b7f94f6b57..346eb3f16ce65df55db95eb75f943591615d5c1e 100644 --- a/packages/loot-core/src/server/sync/sync.property.test.ts +++ b/packages/loot-core/src/server/sync/sync.property.test.ts @@ -93,7 +93,7 @@ const baseTime = 1565374471903; const clientId1 = '80dd7da215247293'; const clientId2 = '90xU1sd5124329ac'; -function makeGen({ +function makeGen<T extends Arbitrary<unknown>>({ table, row, field, @@ -102,7 +102,7 @@ function makeGen({ table: string; row?: Arbitrary<string>; field: string; - value: Arbitrary<unknown>; + value: T; }) { return jsc.record({ dataset: jsc.constant(table), @@ -127,7 +127,7 @@ function makeGen({ }); } -const generators = []; +const generators: Array<ReturnType<typeof makeGen>> = []; Object.keys(schema).forEach(table => { Object.keys(schema[table]).reduce((obj, field) => { if (table === 'spreadsheet_cells' && field === 'expr') { diff --git a/upcoming-release-notes/2066.md b/upcoming-release-notes/2066.md new file mode 100644 index 0000000000000000000000000000000000000000..6ff11102d47cf1e382cbb02429d3809053cd76c7 --- /dev/null +++ b/upcoming-release-notes/2066.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.2). diff --git a/yarn.lock b/yarn.lock index 03925d9128bcf667c4969414bd7bd59dfb402ec3..03fe210bc28f7713f20ace6bacd4174599d5e214 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4299,12 +4299,12 @@ __metadata: languageName: node linkType: hard -"@types/better-sqlite3@npm:^7.6.7": - version: 7.6.7 - resolution: "@types/better-sqlite3@npm:7.6.7" +"@types/better-sqlite3@npm:^7.6.8": + version: 7.6.8 + resolution: "@types/better-sqlite3@npm:7.6.8" dependencies: "@types/node": "npm:*" - checksum: 5021c1bae4a494408c1a77d84bc31dc15e373b8a1cf8880acba6517f63bc5c2dbf032c81938641346fb967600dbebc1475033c2458b5a5b93eb8f2c53bdbcbf8 + checksum: 404e9b7210564866b0f8878353cc6a16c6ffb313077cbb5aec6176ad2b0a30f64236f03f0a40d36d86bf4eab7658bdcd6d6a8a65dc377de7910fc9e9932885a4 languageName: node linkType: hard @@ -13356,7 +13356,7 @@ __metadata: "@swc/helpers": "npm:^0.5.1" "@swc/jest": "npm:^0.2.29" "@types/adm-zip": "npm:^0.5.0" - "@types/better-sqlite3": "npm:^7.6.7" + "@types/better-sqlite3": "npm:^7.6.8" "@types/jest": "npm:^27.5.0" "@types/jlongster__sql.js": "npm:@types/sql.js@latest" "@types/pegjs": "npm:^0.10.3"