Google Analytics의 gg 정의에서 길을 잃음
8757 단어 #GoogleAnalytics#TypeScript
Type Type Script 통과~Type Script 처음 시작할 때 알고 싶었던 것들~
4일차 기사로.
그때 알았더라면 이렇게 멀리 돌아가지 않은gg 설정의 에피소드를 소개해 드리겠습니다.
window.gtag('config', 測定ID);
TypeScript 항목에서 이렇게 Google Analythics의 측정만 기술하면window.gtag의 유형에 정의된 오류가 없습니다.당시의 상황을 돌아보고 이 잘못에서 정답까지의 과정을 총결하였다.
해결책
gg의 유형 정의가 공개되었기 때문에 설치하면 됩니다.
@types/gtag.js 설치 후
window.gtag 정의된 유형의 상태가 됩니다.# npmのプロジェクトへインストールする場合
npm install @types/gtag.js
# yarnのプロジェクトへインストールする場合
yarn add -D @types/gtag.js
풋내기 걸음어색한 포인트와 전체적인 누락을 돌려보도록 하겠습니다.
초보자가 방황하는 모습을 살펴봅시다.
어색하다
두 가지 요소가 억지스러워서 해결하기 전에 많은 시간이 걸렸다.
Type Search의 존재를 알아채지 못했습니다. 형식 정의 파일을 찾는 비결을 모르겠습니다.
이해
tsconfig.json가 얕은 상태에서 설정했기 때문types@types/gtag.js만 설치하면 전 세계에서 사용할 수 없습니다.tsconfig.json에는 gtag.js와 다른 포장을 도입할 시기에 설정된 types이 있다.tsconfig.json의 types
{
"compilerOptions": {
"types": ["hoge"]
},
}
당시를 회고하다일어난 일, 한 일을 순서대로 되돌아보다.
window의 하위 요소에 유형을 추가할 수 있습니까?유형 정의 오류를 예감하는 동시에
gtag부터 사용한다면역시 잘못이야.
Property 'gtag' does not exist on type 'Window & typeof globalThis'. TS2339
gg는 윈도 유형도 Type Script의 globlThis 유형도 존재하지 않습니다그래.
window의 하위 요소에 유형을 추가할 수 있습니까?이렇게 말하지만, 나는 내가 만든 변수가 유형을 설정할 수 있다는 것을 안다
window에 걸어도 금형을 설정할 수 있습니까?잘못된 문장으로 직접 검색하면 창의 하위 요소에 유형을 설정할 수 있습니다.
그렇군요. 설정
declare global하면 window아이도 틀을 낄 수 있어요!declare global {
interface Window {
gtag: any;
}
}
anyESLight에게 꾸지람을 듣고 불편했지만 실수가 풀리자 행동을 시작했다.고육을 피하다
any의 모습은 징그럽지만 ggg.왜냐하면 js형 정의를 직접 만드는 끈기가 없어요.나는 다시 한 번 검색해 보았다.
그래서 우리는 완충 함수
gtag의 이본 점화 방법을 알게 되었다.버전 설정 그리고 점화하는 자제 함수
pageViewEvent도 설정했다declare에서 설정pageViewEvent의 유형any은 피했다.파일 헤더에 점화용pegeViewEvent 설치
<script async src="https://www.googletagmanager.com/gtag/js?id=測定ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
// gtagページビュー送信イベントを実行
function pageViewEvent(){
window.gtag('config', 測定ID);
}
</script>
발화 이벤트 페이지 뷰 이벤트 유형declare global {
interface Window {
pageViewEvent: () => void;
}
}
decrare라서 안전합니다.window.pageViewEvent();
단, 오류 없음any도 사용 안 함진정으로 형식을 정의한 것이 아닌가?
금형 정의를 설치했는데 반응이 없어서...
사실 이때
공개된 gg의 유형 정의가 있습니다. 가져온 해설 기사를 찾았습니다.
단, 절차
npm install에 따라 진행하더라도window.gtag 정형이 없어 진행할 수 없습니다.(이때, 잠시 포기하는 동안...)
pegeViewEvent 사기와 사기를 치면서 단서를 검색한다@types/gtag.js가 작동하지 않는 원인을 발견했습니다!
단,
tsconfig.json에 이미 설정types된 경우에는 전역에서 검출되지 않는다.types를 제거하거나 gtag.js를 types에 추가합니다.(Will Squire의 권장 의역)
tsconfig.json 영향이 있나...어색하다에서 보듯이 gg를 설정하려는 항목에서
types에 hoge가 설정되어 있습니다.tsconfig.json
{
"compilerOptions": {
"types": ["hoge", "gtag.js"]
},
}
이렇게 하면 가져온 해설문은 설치만 하면 스타일을 정의할 수 있다자신의 프로젝트가 유형을 정의할 수 없는 이유를 알고 모두 해결했다.
최후
이 기사를 쓰기 위해서 나는 당시 유행했던 키워드를 추억하고 검색해 보았다
그때보다 더 많은 소식을 발견했어요.
TypeScript의 성황, 혹은 이미 정해진 형세를 느꼈다.
아직 미숙하기 때문에 앞으로도 열심히 공부하겠습니다.
Reference
이 문제에 관하여(Google Analytics의 gg 정의에서 길을 잃음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/webdev/items/2e6b04f0d766e07d7dcf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)