找不到名称空间“ amp”

时间:2019-10-03 22:55:19

标签: typescript azure namespaces azure-media-services azure-media-player

我正在编写一个使用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播放器?

1 个答案:

答案 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应用中使用。

are available