如何在打字稿项目

时间:2017-08-26 16:03:15

标签: javascript typescript module external

我想创建一个小型库作为学习Typescript的借口,但是我真的无法将Javascript库(node-json-equal)导入到我的typescript项目中。我没有在互联网上找到很多解释清楚它是如何工作的,所以我打赌你解释我如何正确地解决问题,为什么我的方法不正确......我猜是因为正确的外部库没有打字

Project image

2 个答案:

答案 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的问题。