我正在编写一个使用Azure Media Player的React / TypeScript项目。根据引用播放器下的docs,我应该能够这样引用播放器:
<?php $args = array('post_type' => 'product',
'posts_per_page' =>-1);
$loop = new WP_Query( $args );
if($loop->have_posts()){
while ( $loop->have_posts() ) : $loop->the_post(); global $product; echo $product->get_title();
endwhile;?>
然后我得到一个编译器错误:
var myPlayer = amp('vid1');
我看到这是一个TypeScript错误,但是文档是为JavaScript编写的。
所以我尝试使用TypeScript:
TypeScript error in C:/<file path>/<file name>.tsx(47,17):
Cannot find namespace 'amp'. TS2503
相同的编译器错误。
如何在React / TypeScript项目中引用AMP播放器?
答案 0 :(得分:1)
TypeScript抱怨,因为首先需要导入amp
类型。根据{{3}},具有TypeScript定义的Azure Media Player的npm软件包尚不可用。但是由于来自CDN的定义this thread,下面是一个示例如何将 custom 类型添加到项目中:
a)下载azuremediaplayer.d.ts
定义并将其放在src
目录下,例如在单独的文件夹amp_typings
中:
amp_typings
|
azuremediaplayer.d.ts
b)在compilerOptions
的{{1}}部分中添加对此类型定义的引用:
tsconfig.json
就是这样,现在{
"compilerOptions": {
...
"typeRoots": ["node_modules/@types", "amp_typings"]
},
...
}
模块可以在React应用中使用。