我按照the blog post进行操作,但这没有用。这是我的承诺:https://github.com/Falieson/react15-meteor1.5/commit/b0c5ccd4f940d980a227789e151c9b1ffb8f71cf

错误

$ meteor
[[[[[ ~/Private/ReactMeteorExample ]]]]]
=> Started proxy.
client/index.tsx (2, 24): Cannot find module 'meteor/meteor'.
=> Started MongoDB.
=> Started your app.


已安装

$ meteor add barbatus:typescript
$ meteor npm install --save @types/meteor @types/react


tsconfig.json

 "compilerOptions": {
    "allowJs": false,
    "alwaysStrict": true,
    "jsx": "react",
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitAny": false,
    "sourceMap": true,
    "strictNullChecks": false,
    "target": "es5",
    "types": [
      "meteor-typings"
    ]


附加问题:类型应该是开发依赖吗?

最佳答案

tsconfig文件中的"types"部分应该没有必要,因为您没有meteor-typings目录(“ meteor-typings”是一种古老的处理方式)。

由于@types包只是.d.ts文件,因此无论它们是标准依赖还是开发依赖都无关紧要。就个人而言,我将其保留为非开发人员。

要解决您遇到的问题,请在顶层添加一个名为typings.d.ts的文件,并在其中添加对要引用的软件包的引用,例如:
/// <reference types="@types/meteor" />

您可能需要添加react类型,或者由于jsx = react定义而可能会自动添加它们,但是在添加上述内容后,它似乎可以正常运行。

打字稿文档建议@types文件应自动包含在内,但我不知道为什么不包含它们。当我删除上面的“类型”时,它们没有被拾取。

另一种解决方案是在tsconfig.json文件中显式指定类型,例如:
... "target": "es5", "types": [ "meteor" ]

这是TS文档的相关内容:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types
本节首先说“默认情况下,所有可见的“ @types”软件包都包含在您的编译中。但是继续说明如何在tsconfig.json文件中配置“ typeRoots”和“ types”。

关于javascript - 带 meteor 1.5的 typescript 设置-找不到模块 meteor / meteor ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45442743/

10-13 03:47