Closed bc-m closed 8 months ago
@biomejs/biome 1.5.2
lint/suspicious/noArrayIndexKey
https://biomejs.dev/playground/?code=YwBvAG4AcwB0ACAAUgBlAG4AZABlAHIAQQByAHIAYQB5ACAAPQAgACgAKQAgAD0APgAgAHsACgAgACAAYwBvAG4AcwB0ACAAYQByAHIAIAA9ACAAWwAxACwAMgAsADMAXQA7AAoAIAAgAHIAZQB0AHUAcgBuACAAYQByAHIALgBmAG8AcgBFAGEAYwBoACgAKABpAHQAZQBtACwAIABpAG4AZABlAHgAKQAgAD0APgAgAHsACgAgACAAIAAgAC8ALwAgAHQAaAByAG8AdwBzACAAZQByAHIAbwByACAAYQBzACAAZQB4AHAAZQBjAHQAZQBkAAoAIAAgACAAIAByAGUAdAB1AHIAbgAgADwAZABpAHYAIABrAGUAeQA9AHsAaQBuAGQAZQB4AH0APgB7AGkAdABlAG0AfQA8AC8AZABpAHYAPgA7AAoAIAAgAH0AKQAKAH0ACgAKAGMAbwBuAHMAdAAgAFIAZQBuAGQAZQByAEEAcgByAGEAeQAyACAAPQAgACgAKQAgAD0APgAgAHsACgAgACAAYwBvAG4AcwB0ACAAYQByAHIAIAA9ACAAWwAxACwAMgAsADMAXQA7AAoAIAAgAHIAZQB0AHUAcgBuACAAYQByAHIALgBmAG8AcgBFAGEAYwBoACgAKABpAHQAZQBtACwAIABpAG4AZABlAHgAKQAgAD0APgAgAHsACgAgACAAIAAgAC8ALwAgAG4AbwAgAGUAcgByAG8AcgAgAHQAaAByAG8AdwBuACwAIABiAHUAdAAgAGUAeABwAGUAYwB0AGUAZAAgAGEAbgAgAGUAcgByAG8AcgAKACAAIAAgACAAcgBlAHQAdQByAG4AIAA8AGQAaQB2ACAAawBlAHkAPQB7AGAAdABlAHMAdAAtAGsAZQB5AC0AJAB7AGkAbgBkAGUAeAB9AGAAfQA%2BAHsAaQB0AGUAbQB9ADwALwBkAGkAdgA%2BADsACgAgACAAfQApAAoAfQA%3D
Using an array index in a template literal key should cause an error as the ESLint rule "react/no-array-index-key": https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-array-index-key.md
Throw a lint-error on usage array-index as key with a template literal.
For whoever is going to work on this bug, the issue also affects strings, not only string literals:
arr.forEach((_, index) => { return <div key={"test" + index} /> })
Environment information
Rule name
lint/suspicious/noArrayIndexKey
Playground link
https://biomejs.dev/playground/?code=YwBvAG4AcwB0ACAAUgBlAG4AZABlAHIAQQByAHIAYQB5ACAAPQAgACgAKQAgAD0APgAgAHsACgAgACAAYwBvAG4AcwB0ACAAYQByAHIAIAA9ACAAWwAxACwAMgAsADMAXQA7AAoAIAAgAHIAZQB0AHUAcgBuACAAYQByAHIALgBmAG8AcgBFAGEAYwBoACgAKABpAHQAZQBtACwAIABpAG4AZABlAHgAKQAgAD0APgAgAHsACgAgACAAIAAgAC8ALwAgAHQAaAByAG8AdwBzACAAZQByAHIAbwByACAAYQBzACAAZQB4AHAAZQBjAHQAZQBkAAoAIAAgACAAIAByAGUAdAB1AHIAbgAgADwAZABpAHYAIABrAGUAeQA9AHsAaQBuAGQAZQB4AH0APgB7AGkAdABlAG0AfQA8AC8AZABpAHYAPgA7AAoAIAAgAH0AKQAKAH0ACgAKAGMAbwBuAHMAdAAgAFIAZQBuAGQAZQByAEEAcgByAGEAeQAyACAAPQAgACgAKQAgAD0APgAgAHsACgAgACAAYwBvAG4AcwB0ACAAYQByAHIAIAA9ACAAWwAxACwAMgAsADMAXQA7AAoAIAAgAHIAZQB0AHUAcgBuACAAYQByAHIALgBmAG8AcgBFAGEAYwBoACgAKABpAHQAZQBtACwAIABpAG4AZABlAHgAKQAgAD0APgAgAHsACgAgACAAIAAgAC8ALwAgAG4AbwAgAGUAcgByAG8AcgAgAHQAaAByAG8AdwBuACwAIABiAHUAdAAgAGUAeABwAGUAYwB0AGUAZAAgAGEAbgAgAGUAcgByAG8AcgAKACAAIAAgACAAcgBlAHQAdQByAG4AIAA8AGQAaQB2ACAAawBlAHkAPQB7AGAAdABlAHMAdAAtAGsAZQB5AC0AJAB7AGkAbgBkAGUAeAB9AGAAfQA%2BAHsAaQB0AGUAbQB9ADwALwBkAGkAdgA%2BADsACgAgACAAfQApAAoAfQA%3D
Expected result
Using an array index in a template literal key should cause an error as the ESLint rule "react/no-array-index-key": https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-array-index-key.md
Throw a lint-error on usage array-index as key with a template literal.
Code of Conduct