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 유형도 존재하지 않습니다그래.
Type Search 검색 유형 정의에 액세스하면 더 빨리 해결됩니다.
window
의 하위 요소에 유형을 추가할 수 있습니까?이렇게 말하지만, 나는 내가 만든 변수가 유형을 설정할 수 있다는 것을 안다
window
에 걸어도 금형을 설정할 수 있습니까?잘못된 문장으로 직접 검색하면 창의 하위 요소에 유형을 설정할 수 있습니다.
그렇군요. 설정
declare global
하면 window
아이도 틀을 낄 수 있어요!declare global {
interface Window {
gtag: any;
}
}
any
ESLight에게 꾸지람을 듣고 불편했지만 실수가 풀리자 행동을 시작했다.고육을 피하다
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가 설정되어 있습니다.types를 설정할 때 의미와 영향을 깊이 연구하지 않고 본보기대로 진행한다.
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.)