2017-06-25 37 views
0

如果我理解正确,rxjs(版本5)是使用typescript编写的,并且与所有定义一起打包。如何为TypeScript导入RXJS类型

我试过使用它们,但我似乎无法找到一种方法来做到这一点。我得到的错误

错误TS2304:找不到名称 '可观测'

这里是我的tsconfg.json

{ 
    "compilerOptions": { 
    "target": "es2016", 
    "strict": true 
    }, 
    "exclude": [ "node_modules" ] 
} 

和文件我尝试编译

const { Observable } = require("@reactivex/rxjs") 

function timer(time: Number): Observable { 
    return Observable.timer(time) 
} 

我跑node_modules/.bin/tsc test.ts

我在这里是否缺少一些typescript配置?有什么事情可以启用类型?

回答

0

来自RXJS的ObservableSubject等的打字稿定义与RXJS软件包捆绑在一起并安装。所以如果你运行npm install rxjs,你会得到包含在npm模块中的类型描述文件(* .td)。

在这种情况下,我认为你的问题是导入Observable模块。它应该阅读:

import { Observable } from 'rxjs/Observable';

+0

从我目前的调查,'“模块”的组合:“CommonJS的”'在'tsconfig.json'文件,就像你说的,'import',而不是'要求“似乎工作......但我仍然不知道为什么?! – atomrc

+0

@atomrc如果它是正确的答案,那么请标记为。如果你正在使用Typescript,我只会坚持'import',这里有很好的解释:https://stackoverflow.com/questions/37651495/difference-between-import-from-and-import-require-in-typescript – edzillion

+0

你的答案仅此而已,并不是解决我的问题的完整方案。我仍然需要了解有关模块的信息:“commonjs”'config我认为。在配置中使用'import'和配置中的'commonjs'似乎是违反直觉的...... – atomrc

相关问题