使用打字稿引用节点库时出现重复标识符错误
Duplicate identifier error when referencing a node library using typescript
我是 typescript 的新手,正在尝试启动一个 hapi.js 项目,但是在我的代码中尝试 require('boom') 时出现错误
Duplicate identifier 'Boom'
/// <reference path="../typings/tsd.d.ts" />
var config = require('../config'),
User = require('../models/user'),
Boom = require('boom'),
joi = require('joi');
我的tsd.json
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": "typings",
"bundle": "typings/tsd.d.ts",
"installed": {
"node/node.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"hapi/hapi.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"bluebird/bluebird.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"boom/boom.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"pg/pg.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
}
}
我已将 boom 和 hapi 添加到我的 tsd - 如果 hapi 也引用 boom 是否会导致某种循环错误?
我应该如何在打字稿中引用这些库?
如果您不在文件中放置全局 import
或 export
,那么就 TypeScript 而言,您的文件是 global[=22 的一部分=] 命名空间,因此您在 Boom
上遇到名称冲突。修复:使用 import/require
而不是 var/require
。
import Boom = require('boom');
我是 typescript 的新手,正在尝试启动一个 hapi.js 项目,但是在我的代码中尝试 require('boom') 时出现错误
Duplicate identifier 'Boom'
/// <reference path="../typings/tsd.d.ts" />
var config = require('../config'),
User = require('../models/user'),
Boom = require('boom'),
joi = require('joi');
我的tsd.json
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": "typings",
"bundle": "typings/tsd.d.ts",
"installed": {
"node/node.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"hapi/hapi.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"bluebird/bluebird.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"boom/boom.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
},
"pg/pg.d.ts": {
"commit": "846a250e0a6f5e6adf6347ee4ca442a9d1abd8fc"
}
}
我已将 boom 和 hapi 添加到我的 tsd - 如果 hapi 也引用 boom 是否会导致某种循环错误?
我应该如何在打字稿中引用这些库?
如果您不在文件中放置全局 import
或 export
,那么就 TypeScript 而言,您的文件是 global[=22 的一部分=] 命名空间,因此您在 Boom
上遇到名称冲突。修复:使用 import/require
而不是 var/require
。
import Boom = require('boom');