我有一个问题,当我使用Typescript而不是JavaScript时,我得到了一个错误或丢失了类型信息。下面的使用VS代码的"JS“代码实际上给出了有关正在导入的bitcore变量的信息。然而,当使用Typescript时,导入的bitcore变量会给出一个错误,说明它缺少定义文件,如果我使用var而不是import来引入模块,那么我只会得到一个"any“类型的变量。
考虑到这是Typescript,我应该至少能够获得与Javascript一样多的类型信息。
编辑:我发现了TS /代码的一个令人困惑的,隐藏的“功能”,如果没有tsconfig.json,类型是"any",并且在VS代码工作区的另一个打开的文件中可以合法地找到该类型信息,在本例中是一个javascript文件,那么它将在VS代码工作区中“缓存”该类型信息并将其显示在.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文件之后,已从“高速缓存”中检索到类型信息。

发布于 2017-08-31 03:18:42
为了让TypeScript“知道”你的库,你需要为这个库提供一个定义文件。
在许多情况下,您可以在DefinitelyTyped找到库(流行的库)的定义文件。
有一个open issue可以为这个库创建这样的文件,所以你必须等待或者贡献给这个存储库。
https://stackoverflow.com/questions/45968025
复制相似问题