找不到'amp'命名空间。

3

我正在撰写一个使用Azure Media Player的React/TypeScript项目。根据文档中的“引用播放器”部分,我应该能够像这样引用播放器:

var myPlayer = amp('vid1');

我接着遇到一个编译器错误:

TypeScript error in C:/<file path>/<file name>.tsx(47,17):
Cannot find namespace 'amp'.  TS2503

我看到这是一个TypeScript错误,但文档是针对JavaScript编写的。

所以我尝试使用TypeScript:

let player: amp.Player = amp("player");

相同的编译器错误。


我该如何在我的React / TypeScript项目中引用AMP播放器?

1个回答

6

由于必须先导入amp类型,TypeScript会出现错误。根据此贴所述,尚未提供带有TypeScript定义的Azure Media Player npm包。但是,由于从CDN获取到了定义,这里提供一个示例,说明如何向项目添加自定义类型:

a)下载azuremediaplayer.d.ts定义,并将其放置在src目录下,例如在单独的文件夹amp_typings中:

amp_typings
    |
    azuremediaplayer.d.ts

b) 在你的tsconfig.json文件的compilerOptions部分中添加对该类型定义的引用:

{
  "compilerOptions": {
    ...
    "typeRoots": ["node_modules/@types", "amp_typings"]
  },
  ...
}

就这样,现在 amp 模块可以在 React 应用中使用了。

这里有一个演示


我应该从哪里下载这个文件? - Super Jade
@SuperJade,这是TypeScript定义文件(d.ts)(来自文档)。 - Vadim Gremyachev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接