2016-07-29 111 views
0

这里是.js文件:如何用javascript模块插入打字稿文件

var mongoose=require('mongoose'); 
var express=require('express'); 
var app=express(); 

var connect=mongoose.connect("mongodb://localhost:27017/techo2log"); 
var schema=mongoose.Schema; 
var userschema=new schema(
{ 
    name:String, 
    age:Number, 
    address:String, 
    created_at:Date, 
    updated_at:Date, 

} 
); 

var User=mongoose.model('User',userschema); 
userschema.method.dudify=function() 
{ 
this.name=this.name+'-dude'; 
return this.name; 
} 

//making the model available to the external file 
module.exports=User; 

我想使用的用户模块中我喜欢的类型的脚本file.How我应该写在上面的代码打字稿定义文件这样我可以导入我的.ts文件。

+0

的[如何导入一个js库没有打字稿文件定义文件]可能的复制(http://stackoverflow.com/问题/ 22842389/how-to-import-a-js-library-without-definition-file-in-typescript-file) –

回答

0

我假设你编写了一个NodeJS模块,所以首先确保你使用--module commonjs作为编译器选项(或者在你的tsconfig.json中)。

其次,您只需要创建一个定义文件。如果你的JS文件名为“user.js的”,你能说出你的定义文件“user.d.ts”,可能是这样的:

declare module 'user' { 
    var User: any; 
    export = User; 
} 

当然,你可以细化User类型,但作为一个开始,这应该可以做到。

第三,你可以用这样的行导入打字稿你的模块:

import User = require('user'); 
+0

我得到的错误是“在打字稿中导入时无法找到模块'user' –

+0

我有尝试所有的东西,但仍然得到相同的错误。也尝试添加///