Skip to content

Commit 43d5653

Browse files
authored
Add TS no-redeclare ESLint rule (#2246)
1 parent d9e306b commit 43d5653

File tree

4 files changed

+2
-16
lines changed

4 files changed

+2
-16
lines changed

.eslintrc.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ module.exports = {
3535
// enable this rule to see literally everything missing jsdocs, this rule needs some refinement but is good as a sanity check.
3636
// 'jsdoc/require-jsdoc': [ERROR, {contexts:['TSInterfaceDeclaration TSPropertySignature', 'TSInterfaceDeclaration TSMethodSignature']}],
3737
'jsdoc/require-description': [ERROR, {exemptedBy: ['deprecated'], checkConstructors: false}],
38+
'no-redeclare': OFF,
39+
'@typescript-eslint/no-redeclare': ERROR,
3840
'no-unused-vars': OFF,
3941
'@typescript-eslint/no-unused-vars': ERROR,
4042
'@typescript-eslint/member-delimiter-style': [ERROR, {

packages/@internationalized/date/src/manipulation.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@ import {Mutable} from './utils';
1919

2020
const ONE_HOUR = 3600000;
2121

22-
/* eslint-disable no-redeclare */
2322
export function add(date: CalendarDateTime, duration: Duration): CalendarDateTime;
2423
export function add(date: CalendarDate, duration: Duration): CalendarDate;
2524
export function add(date: CalendarDate | CalendarDateTime, duration: Duration): CalendarDate | CalendarDateTime;
2625
export function add(date: CalendarDate | CalendarDateTime, duration: Duration) {
27-
/* eslint-enable no-redeclare */
2826
let mutableDate: Mutable<AnyCalendarDate> = date.copy();
2927
let days = 'hour' in date ? addTimeFields(date, duration) : 0;
3028

@@ -115,19 +113,15 @@ export function invertDuration(duration: Duration): Duration {
115113
return inverseDuration;
116114
}
117115

118-
/* eslint-disable no-redeclare */
119116
export function subtract(date: CalendarDateTime, duration: Duration): CalendarDateTime;
120117
export function subtract(date: CalendarDate, duration: Duration): CalendarDate;
121118
export function subtract(date: CalendarDate | CalendarDateTime, duration: Duration): CalendarDate | CalendarDateTime {
122-
/* eslint-enable no-redeclare */
123119
return add(date, invertDuration(duration));
124120
}
125121

126-
/* eslint-disable no-redeclare */
127122
export function set(date: CalendarDateTime, fields: DateFields): CalendarDateTime;
128123
export function set(date: CalendarDate, fields: DateFields): CalendarDate;
129124
export function set(date: CalendarDate | CalendarDateTime, fields: DateFields) {
130-
/* eslint-enable no-redeclare */
131125
let mutableDate: Mutable<AnyCalendarDate> = date.copy();
132126

133127
if (fields.era != null) {
@@ -150,11 +144,9 @@ export function set(date: CalendarDate | CalendarDateTime, fields: DateFields) {
150144
return mutableDate;
151145
}
152146

153-
/* eslint-disable no-redeclare */
154147
export function setTime(value: CalendarDateTime, fields: TimeFields): CalendarDateTime;
155148
export function setTime(value: Time, fields: TimeFields): Time;
156149
export function setTime(value: Time | CalendarDateTime, fields: TimeFields) {
157-
/* eslint-enable no-redeclare */
158150
let mutableValue: Mutable<Time | CalendarDateTime> = value.copy();
159151

160152
if (fields.hour != null) {
@@ -226,11 +218,9 @@ export function subtractTime(time: Time, duration: Duration): Time {
226218
return addTime(time, invertDuration(duration));
227219
}
228220

229-
/* eslint-disable no-redeclare */
230221
export function cycleDate(value: CalendarDateTime, field: DateField, amount: number, options?: CycleOptions): CalendarDateTime;
231222
export function cycleDate(value: CalendarDate, field: DateField, amount: number, options?: CycleOptions): CalendarDate;
232223
export function cycleDate(value: CalendarDate | CalendarDateTime, field: DateField, amount: number, options?: CycleOptions) {
233-
/* eslint-enable no-redeclare */
234224
let mutable: Mutable<CalendarDate | CalendarDateTime> = value.copy();
235225

236226
switch (field) {
@@ -262,11 +252,9 @@ export function cycleDate(value: CalendarDate | CalendarDateTime, field: DateFie
262252
return mutable;
263253
}
264254

265-
/* eslint-disable no-redeclare */
266255
export function cycleTime(value: CalendarDateTime, field: TimeField, amount: number, options?: CycleTimeOptions): CalendarDateTime;
267256
export function cycleTime(value: Time, field: TimeField, amount: number, options?: CycleTimeOptions): Time;
268257
export function cycleTime(value: Time | CalendarDateTime, field: TimeField, amount: number, options?: CycleTimeOptions) {
269-
/* eslint-enable no-redeclare */
270258
let mutable: Mutable<Time | CalendarDateTime> = value.copy();
271259

272260
switch (field) {

packages/@react-aria/button/src/useButton.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ export interface ButtonAria<T> {
3232
isPressed: boolean
3333
}
3434

35-
/* eslint-disable no-redeclare */
3635
export function useButton(props: AriaButtonProps<'a'>, ref: RefObject<HTMLAnchorElement>): ButtonAria<AnchorHTMLAttributes<HTMLAnchorElement>>;
3736
export function useButton(props: AriaButtonProps<'button'>, ref: RefObject<HTMLButtonElement>): ButtonAria<ButtonHTMLAttributes<HTMLButtonElement>>;
3837
export function useButton(props: AriaButtonProps<'div'>, ref: RefObject<HTMLDivElement>): ButtonAria<HTMLAttributes<HTMLDivElement>>;
@@ -46,7 +45,6 @@ export function useButton(props: AriaButtonProps<ElementType>, ref: RefObject<HT
4645
* @param ref - A ref to a DOM element for the button.
4746
*/
4847
export function useButton(props: AriaButtonProps<ElementType>, ref: RefObject<any>): ButtonAria<HTMLAttributes<any>> {
49-
/* eslint-enable no-redeclare */
5048
let {
5149
elementType = 'button',
5250
isDisabled,

packages/@react-aria/button/src/useToggleButton.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import {chain} from '@react-aria/utils';
2424
import {mergeProps} from '@react-aria/utils';
2525
import {ToggleState} from '@react-stately/toggle';
2626

27-
/* eslint-disable no-redeclare */
2827
export function useToggleButton(props: AriaToggleButtonProps<'a'>, state: ToggleState, ref: RefObject<HTMLAnchorElement>): ButtonAria<AnchorHTMLAttributes<HTMLAnchorElement>>;
2928
export function useToggleButton(props: AriaToggleButtonProps<'button'>, state: ToggleState, ref: RefObject<HTMLButtonElement>): ButtonAria<ButtonHTMLAttributes<HTMLButtonElement>>;
3029
export function useToggleButton(props: AriaToggleButtonProps<'div'>, state: ToggleState, ref: RefObject<HTMLDivElement>): ButtonAria<HTMLAttributes<HTMLDivElement>>;
@@ -36,7 +35,6 @@ export function useToggleButton(props: AriaToggleButtonProps<ElementType>, state
3635
* ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.
3736
*/
3837
export function useToggleButton(props: AriaToggleButtonProps<ElementType>, state: ToggleState, ref: RefObject<any>): ButtonAria<HTMLAttributes<any>> {
39-
/* eslint-enable no-redeclare */
4038
const {isSelected} = state;
4139
const {isPressed, buttonProps} = useButton({
4240
...props,

0 commit comments

Comments
 (0)