是否需要打字稿类型定义?

时间:2015-12-09 01:38:05

标签: typescript

我对打字稿定义文件的理解是,它们用于提供工具支持,不需要编译打字稿。

但是考虑到以下因素:

app.ts

import {Observable} from 'rx';

Observable
    .interval(1000)
    .subscribe(n => console.log(n));

运行:

npm install typescript rx --save
.\node_modules\.bin\tsc app.ts --module commonjs 

给出错误:

app.ts(1,26): error TS2307: Cannot find module 'rx'.

导入rx修复的类型定义

app.ts

/// <reference path="./node_modules/rx/ts/rx.all.d.ts" />

import {Observable} from 'rx';

Observable
    .interval(1000)
    .subscribe(n => console.log(n));

问题

  • 看来定义文件是必需的,这种情况总是如此吗?
  • rx npm包中包含定义文件。打字稿是否可以自动搜索节点模块文件夹以找到它们而无需我明确地引用它们?

更新

basarat对于typings属性是正确的。有关详细信息,请参阅Typings for npm packages

1 个答案:

答案 0 :(得分:4)

  

看来定义文件是必需的,总是这样吗?

没有。如果模块使用typings属性正确执行,它将正常工作。更多:https://basarat.gitbooks.io/typescript/content/docs/quick/nodejs.html

  

rx npm包中包含定义文件。打字稿是否可以自动搜索节点模块文件夹以找到它们而无需我明确地引用它们?

只有他们typings正确设置......他们没有。