【问题标题】:How to import nano (couchdb) - typescript如何导入 nano (couchdb) - 打字稿
【发布时间】:2018-01-30 13:09:31
【问题描述】:
在我的节点应用程序中导入和使用 nano 时遇到问题。
js方式(来自文档)是:
var nano = require('nano')('http://localhost:5984');
我如何使用 typescript 做到这一点?
我试过了
import * as Nano from "nano";
let nano = new Nano('http://localhost:5984');
但后来我得到:Nano 不是一个对象。
【问题讨论】:
标签:
typescript
couchdb
node-modules
couchdb-nano
【解决方案1】:
通过安装@types/nano 我们可以查看:
node_modules/@types/nano/index.d.ts
我们看到线条的地方:
declare function nano(config: nano.Configuration | string):
nano.ServerScope | nano.DocumentScope;
意思是 Nano 是一个函数而不是一个对象,所以答案是:
import * as Nano from "nano";
let nano = Nano('http://localhost:5984');
【解决方案2】:
你必须像下面这样进行类型转换:
import * as Nano from "nano";
let nano: Nano.ServerScope = <Nano.ServerScope>Nano('http://localhost:5984');
let db = nano.use(database);
【解决方案3】:
由于版本 7.x nano 已内置 IDE 的 TS 类型信息,因此无需导入额外的类型。
以下应该足够了:
import Nano from "nano";
let n = Nano('localhost:5984');