当使用node.js时,typescript需要得到我的定义

What's needed for typescript to get my definitions when using node.js require?

本文关键字:定义 我的 typescript node js      更新时间:2023-09-26

我在VS2013 Update 2中使用Visual Studio 2013的Node.js工具。

我在util.ts文件中有以下代码:

var Util = function () {
    this.getSelectOption = function (elem, value) {
        var x = 99;
    }
module.exports = new Util();

,然后在base.ts文件

// <reference path="../../Utils/util.ts" />
// <reference path="../../Utils/helpers.ts" />
var util = require('../../Utils/util.js');

当我将鼠标悬停在上面时,我看到的都是

(var) util: any
谁能给我解释一下可能出了什么问题?我期待Typescript能够捡起getSelectOption函数的定义?

你需要使用TypeScript的import/export语句,而不是标准的commonjs模式(var/require)。

还需要使用--module commonjs标志进行编译。

更多:https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1

你的代码重构

的第一个文件。为你的函数使用TypeScript容器。比如模块或类。同时使用export

   module Util {
       export function getSelectOption (elem, value) {
          var x = 99;
       }
   }
   export = Util;

其他文件(使用import,不需要.js扩展名):

  import util = require('../../Utils/util');
<标题> 的原因

TypeScript通过SAME TypeScript代码支持AMD + CommonJS目标。因此扩展了语言以找到一个共同的基础来支持它们。