在我使用的是所谓的第三方库bunyan像这样我的打字稿代码:打字稿:避免需要在报表编译的JavaScript
private logger: bunyan.Logger = bunyan.createLogger({name: "MyClass"});
因为打字稿无法解析变量bunyan
,我这样做是为了使打字稿编译器的工作:
import * as bunyan from "bunyan";
不幸的是这会导致下面的JavaScript输出:
var bunyan = require("bunyan");
require
语句在浏览器中不起作用(当不使用requirejs实现时),因此我将收到:Uncaught ReferenceError: require is not defined
。
其实我不需要require
声明在我编译的JavaScript中,因为我可以使用浏览器的bunyan.min.js
(browserified版本)。但是如何避免在我的TypeScript代码中输入bunyan而不让TypeScript编译器抱怨未知引用?
我用的打字稿1.8,这是我的打字稿编译器配置:
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": false,
"removeComments": true,
"target": "es5"
},
"exclude": [
"node_modules",
"typings/browser",
"typings/browser.d.ts"
]
}
感谢您的快速回答。但是如果我这样做,我会得到'错误TS2503:找不到命名空间'bunyan''。 –
我的错误@BennyNeugebauer。我已经更新了我的答案:) –
谢谢,詹姆斯!我会试试看!我真的需要将bunyan的每个方法声明为接口方法,还是可以使用它的'index.d.ts'文件? –