我想创建一个小型库作为学习Typescript的借口,但是我真的无法将Javascript库(node-json-equal)导入到我的typescript项目中。我没有在互联网上找到很多解释清楚它是如何工作的,所以我打赌你解释我如何正确地解决问题,为什么我的方法不正确......我猜是因为正确的外部库没有打字
答案 0 :(得分:0)
要使用外部JS库,您可以:
A)使用打字文件
有许多可以使用的打字文件,请查看DefinitelyTyped网页,查看准备使用的定义文件列表。
如果找不到图书馆的定义文件,我强烈建议您自己创建一个。查看this guide以获取有关如何创建自己的定义文件的更多信息。
B)为您的库声明一个变量
通过使用declare关键字,您告诉编译器不检查该特定变量的类型安全性。
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var CourseSchema = require('./course.js').schema;
var EventSchema = new Schema({
course: CourseSchema,
date: Date,
time: String
}, {
bufferCommands: false,
timestamps: true
});
module.exports = {
EventSchema,
}
如果使用这种方法,你基本上可以对这个变量进行类型检查,并且由你来确保在运行时确实存在一个名为nodeJsonEqual的变量,并且你调用的函数具有正确的签名。
答案 1 :(得分:0)
我终于找到了问题。它与我的源代码无关,但与我的dockerfile无关。基本上我添加了被破坏的package-lock.json,所以最后没有下载模块。我解决了添加package.json的问题。