我有一个包含以下代码的文件:

import * as lunr from 'lunr';

console.log('main');

我已经安装了lunrsrc/client/main.ts的dt类型
我的tsconfig.json文件具有以下选择器:
"filesGlob": [
  "src/**/*.ts"
],
"files": [
  "typings/index.d.ts"
]

为什么typescript编译器找不到模块?编译器总是输出typings install dt~lunr --save --globals

最佳答案

在看了lunr的类型之后,我看到它定义了一个namespacehttps://www.typescriptlang.org/docs/handbook/namespaces-and-modules.html
这意味着它不应该用作导入,而应该用作全局对象上的命名空间。所以我的main.ts文件变成:

lunr(function() { console.log('do something with lunr') });

console.log('main');

在加载自己的脚本之前,使用script标记在html文件中加载lunr库。
我损失了将近两个小时的时间…悲伤…

09-25 19:04