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.js

eller

npm install --save-dev @types/gtag.js

Avhengig 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.

Relaterte artikler