我遇到的问题是,在使用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);
TS没有tsconfig.json存在,并且在打开已检索到类型信息的其他javascript文件后,已从“缓存”中检索到类型信息。
答案 0 :(得分:0)
为了使TypeScript能够"知道"您的库需要为此库提供定义文件 在许多情况下,您可以在DefinitelyTyped找到库(流行的)的定义文件 有open issue为此库创建此类文件,因此您必须等待或贡献此存储库。