如何在 TypeScript 中导入 Vanilla JS ES6 模块?

How to import Vanilla JS ES6 modules in TypeScript?

我正在尝试导入这个库:spotlight,它是纯 JS。

在我的项目中我创建了一个假的 d.ts:

declare module 'spotlight.js'

按照VSCode的建议,然后我尝试了每一个导入组合:

import * as spotlight from 'spotlight';
import spotlight from 'spotlight';
import { spotlight } from 'spotlight';

但在我的代码中,spotlight 表达式始终是一个空对象。

我错过了什么?

declare 语句最初必须在单独的文件中,还要确保您为 import 语句提供了正确的路径。

有一个未解决的问题:https://github.com/nextapps-de/spotlight/issues/6

正如@Shinigami 指出的那样 - 有一个悬而未决的问题。正如我所看到的,现在,没有修改库的 import Spotlight 对象的优雅方法(似乎 npm run build 也没有太大帮助)。但是,根据代码判断,Spotlight 可以通过 window 访问。所以应该可以这样使用

import "spotlight"
window.Spotlight.show(...)