reactjs - Hur TypeScript hanterar `data-*` attribut i JSX?
Tänk på detta:
import type { JSX } from 'react';
const MyComponent = (): JSX.Element => (
<div data-attr="bar">Foo</div>
);
Detta ger ingen TypeScript-fel vilket förväntas, men jag kan inte hitta typer för data-* egna attribut, något som
interface *** {
// other attributes...
`data-${string}`: string
}
Kan någon snälla berätta för mig var i d.ts-filerna detta definieras?
Svar #1
Det är en del av Typescript-specifikationen för JSX, enligt dokumentationen:
Obs: Om ett attributnamn inte är en giltig JS-identifikator (som ett data-* attribut) anses det inte vara ett fel om det inte finns i elementets attributtyp.
Det gäller också för alla egenskaper med ett bindestreck - inuti, till exempel är detta giltig JSX för Typescript:
<div a-custom-attribute="hello"></div>
