gpt4 book ai didi

javascript - 是否可以将远程 javascript 描述为带有 .d.ts 文件的 typescript 模块?

转载 作者:行者123 更新时间:2023-12-01 16:33:03 25 4
gpt4 key购买 nike

我试图将远程 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com