gtag.js - gtag-funksjon Typescript-definisjon
Jeg bruker original JavaScript-funksjon
function gtag(){dataLayer.push(arguments);}
så fikk jeg feil: error TS2554: Forventet 0 argumenter, men fikk 3. når brukt slik:
gtag('event', 'page_view', { send_to: 'xxxx' }) Jeg brukte // @ts-ignore som en løsning, og det fungerer: Jeg ser trafikk i Google Analytics. Jeg vil gjøre det ordentlig uten løsninger, og jeg prøvde å erstatte gtag-funksjonen slik:
function gtag(...args: any) {
window.dataLayer.push(args)
}
og noen andre varianter, men det fungerte ikke. Jeg ser at window.dataLayer-elementene nå inneholder array i stedet for Object eller Arguments.
Eller enda bedre, finnes det en eksisterende gtag-wrapper, noe lignende react-gtm eller react-ga, men for gtagjs?
Svar #1
Du kan installere @types/gtag.js. Se https://github.com/DefinitelyTyped/DefinitelyTyped/tree/4d4da2106dcd54af4a0ddeb5e0360f322fd8a5bf/types/gtag.js
yarn add -D @types/gtag.jseller
npm install --save-dev @types/gtag.jsAvhengig av din tsconfig, kan det hende du må legge det til i types-alternativet.
Svar #2
For å utdype svaret fra @thisismydesign.
Installer :
yarn add -D @types/gtag.js
Og det bør oppdage det globalt automatisk. Men hvis types er satt i tsconfig.json, vil det sannsynligvis ikke gjøre det. Enten fjern types fra konfigurasjonen eller legg til @types/gtag.js i den slik:
"types": ["cypress", "@testing-library/cypress", "@types/gtag.js"],
Merk også at hvis dette legges til, kan det hende at hvilken som helst bygge-mappe må slettes for å hindre at ting som linting henger seg opp.
