【发布时间】:2017-09-03 02:03:57
【问题描述】:
我在使用 Typescript 而不是 JavaScript 时遇到错误或丢失类型信息的问题。下面使用 VS Code 的“JS”代码实际上为我提供了有关正在导入的 bitcore 变量的信息。但是,在使用 Typescript 时,导入的 bitcore 变量会给出一个错误,指出它缺少定义文件,如果我使用 var 而不是 import 来引入模块,那么我只会得到一个“任何”类型的变量.
鉴于这是 Typescript,我应该能够获得至少与 Javascript 一样多的类型信息。
编辑:我发现了 TS/Code 的一个令人困惑、隐藏的“功能”,如果不存在 tsconfig.json,并且类型以“any”的形式出现,并且该类型信息可以在另一个打开的文件中合法找到VS Code 工作区中的文件,在本例中为 javascript 文件,然后它将“缓存”该类型信息在 VS Code 工作区中并将其显示在 .ts 文件中,即使 TS 本身没有获取该信息。
TS
import bitcore = require("bitcore-lib")
var key = new bitcore.PrivateKey("testnet")
console.log(key)
JS
var bitcore = require("bitcore-lib");
var key = new bitcore.PrivateKey("testnet");
console.log(key);
没有 tsconfig.json 的 TS 存在,并且在打开已检索到类型信息的不同 javascript 文件后,已从“缓存”中检索到类型信息。
【问题讨论】:
-
您的 TS 导入语句不应该是
import bitcore from "bitcore-lib"之类的吗? -
它仍然给出关于没有声明文件的相同错误
标签: javascript node.js typescript