Visual Studio 2013中的TypeScript、Node.js、require和模块

Visual Studio 2013中的TypeScript、Node.js、require和模块,node.js,visual-studio,express,typescript,typescript1.4,Node.js,Visual Studio,Express,Typescript,Typescript1.4,对于Node.js代码库,在Visual Studio 2013的TypeScript文件中使用此代码是否不正确 // toolset_1.ts, this file is referenced in other .ts files declare function require(name: string); declare var module; declare var __dirname; 设置: 项目是使用目录中的节点创建的 使用VS 2013在同一目录中创建的TypeScript

对于Node.js代码库,在Visual Studio 2013的TypeScript文件中使用此代码是否不正确

// toolset_1.ts, this file is referenced in other .ts files
declare function require(name: string);
declare var module;

declare var __dirname;
设置:

  • 项目是使用目录中的
    节点创建的
  • 使用VS 2013在同一目录中创建的TypeScript项目
当前情况/配置:

  • Me:C#developer、Node.js和typescriptnoob

  • TypeScript:模块系统选项设置为“无”

  • 项目描述:带有Node.js、Express.js的简单游乐场 还有一堆其他工具和一些打字脚本代码

  • 项目状态:它工作(简单获取(Hogan.js)、发布、放置和删除 请求(正在被服务)

例如,这是routes目录(express)中的pile.ts:

//
var express=需要(“express”);
var router=express.router();
router.get('/',函数(req,res,next){
res.render('pile',{title:'picked',msg:'[picked]'});
});
router.post('/',函数(req,res){
res.send({time:new Date(),msg:'post[picked]});
});
router.put('/',函数(req,res){
res.send({time:new Date(),msg:'put[picked]});
});
路由器.删除('/',函数(req,res){
res.send({time:new Date(),msg:'delete[picked]});
});
module.exports=路由器;
对于Node.js代码库,在Visual Studio 2013的TypeScript文件中使用此代码是否不正确

// toolset_1.ts, this file is referenced in other .ts files
declare function require(name: string);
declare var module;

declare var __dirname;
没关系。但我会做些别的事情:

  • 从中获取文件
    node.d.ts
    。还可以获得其他类似
    express.d.ts

  • 使用
    ///谢谢引用文件;问题是(IMHO;当前为-TypedScript和Node.js noob),我不喜欢“包装器代码”的概念。如果是JavaScript,就让它去吧。我用TypeScript编写我的代码部分,可以使用这些js库的最新更新,而无需等待它们的ts包装器得到更新。但是我会尝试它们(听取专家的意见是明智的!)@KavehShahbazian请记住.d.ts文件实际上不是代码。它只是声明了真实代码的“形状”。另一种方法是将所有对象都视为具有类型
    any
    ,但您也可以使用JavaScript。@DanielEarwicker我想
    .d.ts
    文件是某种头文件。感谢您的DefinitelyTyped,它工作得很好。是的,与C头文件的类比非常贴切。
    import express = require('express');