【问题标题】:Typescript hinting + webstorm + nodejs + require打字稿提示 + webstorm + nodejs + 要求
【发布时间】:2015-05-07 05:49:16
【问题描述】:

所以我决定是时候开始学习打字稿了。我来自 .net 背景,非常精通 NodeJS,希望将两者合并。

我在尝试将 typescript 与“require”d 模块一起使用时遇到了困难。我认为一个代码示例会更好地说明

///<reference path="tsd/q.d.ts" />
var q = require('q'); //<--- How do I set the type of this using the reference path above?
function test() {
    var deferred = q.defer();
    deferred.resolve();
    return deferred.promise;
}

我知道导入,但这似乎需要其他文件在打字稿中?还是我完全误解了打字稿可以做什么?

【问题讨论】:

  • 目前看来解决方案是我需要使用: import q = require('q');这很好地结合了它。我还需要向我的 webstorm 文件观察器添加 --module commonjs 参数以允许它编译

标签: javascript node.js typescript webstorm


【解决方案1】:

您还必须将--module 设置为commonjs 并使用:

import q = require('q')

您还需要在构建中包含q(和nodejs)的DefinitelyTyped 定义文件。可以按照您的方式引用它,但如果您使用 WebStorm、Visual Studio 或 Atom 等构建集成工具,则项目中的所有文件都将自动包含在内,并且不再需要引用。

TypeScript 1.5

从 1.5+ 开始,您将拥有一个 tsconfig 文件,用于构建顺序和包含,如 https://github.com/Microsoft/TypeScript/wiki/tsconfig.json 所示。设置您的项目文件并根据需要包含类型,您无需手动引用文件无处不在

【讨论】:

  • tsconfig 的目的不是用于 .d.ts 引用,如果您在 files 列表中指定它们,那么这些是唯一将被编译的文件,我建议不要使用它来处理外部参考。话虽如此,如果您使用tsd 之类的工具,它将处理将所有引用组织在一个地方,并且您只需要 1 个外部模块的引用。 github.com/DefinitelyTyped/tsd
  • 列出的文件是在上下文中与其他文件一起编译的。它有效,您不需要愚蠢的参考。那么它本质上就是一个项目。
  • 对,但是无论何时您将任何文件添加到project,您都需要更新 tsconfig.json 我只是希望它根据目录结构自动提取我的文件,这样可以减少提交/签入代码时发生冲突,并且在添加与节点约定更和谐的文件时,我可以少一步记住
  • 这是一个有效的观点。但是,根据您的编辑器环境,文件引用可以自动更新。为此,我使用 Atom 和 TypeStrong,它在 tsconfig 文件中定义 glob 并自动更新引用。这可能就是我从不需要考虑太多的原因。
猜你喜欢
  • 2017-05-08
  • 2012-11-03
  • 2017-11-06
  • 1970-01-01
  • 2016-02-05
  • 2021-07-03
  • 2016-01-28
  • 2015-10-24
  • 2014-01-25
相关资源
最近更新 更多