4

我是 Typescript 和 NodeJS 的新手。

出于某种原因:

GetMenuDataCommand.ts

"use strict";

import fs = module("fs")

变成这样:

GetMenuDataCommand.js

  var fs = "fs";

打字稿——我爱你——但为什么呢?

4

4 回答 4

4

我正在使用 TypeScript 0.9 以下代码:

/// <reference path="node.d.ts" />

import fs = require("fs");

fs.appendFile('name.txt', 'Some data');

产生以下相同的输出:

var fs = require("fs");

fs.appendFile('name.txt', 'Some data');

(在 CommonJS 模式下 - 在 AMD 模式下,它会执行以下操作......)

define(["require", "exports", "fs"], function(require, exports, __fs__) {
    var fs = __fs__;

    fs.appendFile('name.txt', 'Some data');
});
于 2013-07-29T17:33:51.483 回答
1

您是否正确引用了该node.d.ts文件?如果 TypeScript 没有对导入定义文件的引用,它将为导入生成一个字符串,而不是预期的代码。

例如,我有以下内容:

import passport = require('passport');

这正在产生:

var passport = "passport";

原来我忘了引用定义文件。在文件顶部添加引用解决了问题:

/// <reference path="../../definitions/passport.d.ts" />

可以说你应该很容易发现它,因为 TypeScript 编译器会抛出一个错误,但是 0.9.x 有点错误,它并不总是能捕捉到所有东西。

于 2013-11-02T08:48:42.443 回答
0

不确定它是否相关但在 ts 0.9.x 中使用 require 而不是 module 关键字:

"use strict";

import fs = require("fs")
于 2013-07-29T22:05:06.787 回答
0

你缺少类型。

从命令行。

npm install typings --save-dev
node node_modules/typings/dist/bin.js install dt~node --save --global

您必须包含该global标志,否则您的文本编辑器将无法获取该.dt.ts文件。

于 2016-08-30T18:52:59.680 回答