我试图将远程javascript描述为带有.d.ts
文件的打字稿模块,但我收到了错误消息
找不到模块:无法解析播放器'在 ' /用户/ iepsen /项目/ SRC'
这是因为它试图加载本地模块。
那么如何加载远程javascript并让打字稿知道他们的方法和参数类型?
的src /类型/ globals.d.ts
declare module 'player' {
namespace player {
function constructor(param1: string, param2: string): void
function play(): void
}
export = player
}
的src / index.tsx
import * as Player from 'player';
Player.play();
答案 0 :(得分:0)
由于此player
模块在构建时不是代码中实际包含的内容,因此您需要声明它并将其用作环境命名空间。
请参阅Typescript's Namespaces documentation中的最后一段,了解它们对Ambient Namespaces的描述。
实质上,您需要将.d.ts
文件修改为:
declare namespace Player {
export interface Base {
function constructor(param1: string, param2: string): void;
function play(): void;
}
}
declare var Player: Player.Base;
然后在index.tsx
// No need for import, as it's an ambient module
Player.play();