我试图将远程 javascript 描述为带有 .d.ts
文件的 typescript 模块,但我收到一条错误消息
Module not found: Can't resolve 'player' in '/Users/iepsen/project/src'.
发生这种情况是因为它试图加载本地模块。
那么如何加载远程 javascript 并让 typescript 知道它们的方法和参数类型?
src/types/globals.d.ts
declare module 'player' {
namespace player {
function constructor(param1: string, param2: string): void
function play(): void
}
export = player
}
源/索引.tsx
import * as Player from 'player';
Player.play();
最佳答案
由于此 player
模块在构建时并未实际包含在您的代码中,因此您需要声明它并将其用作环境命名空间。
参见 Typescript's Namespaces documentation 中的最后一段用于他们对环境命名空间的描述。
本质上,您需要将.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();
关于javascript - 是否可以将远程 javascript 描述为带有 .d.ts 文件的 typescript 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287211/