我有一个在我的网络应用程序上呈现<AdSense/>
广告单元的组件。
在index.html
我有以下 AdSense 标记:
<script data-ad-client="XXXXXX" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
该脚本可能会将adsbygoogle
属性注入window
对象。
但是在我的组件上,我必须像这样使用该属性:
useEffect(()=>{
(window.adsbygoogle = window.adsbygoogle || []).push({});
},[]);
当我的项目在JavaScript中时这很好,但现在我已经切换到Typescript,我收到以下错误:
ERROR in src/components/ads/AdSenseBanner.tsx:74:13
TS2339: Property 'adsbygoogle' does not exist on type 'Window & typeof globalThis'.
如何声明此属性以使 Typescript 了解它是什么?
我试过的:
我创建了一个d.ts
for 全局声明。
环境.d.ts
以下不起作用。
declare const adsbygoogle: {[key: string]: unknown}[];
以下似乎有效(就消除错误而言)。但它触发了一个新错误:
declare var adsbygoogle: {[key: string]: unknown}[];