带流星 1.5 的打字稿设置 - 找不到模块流星/流星



我关注了博客文章,但这不起作用。这是我的承诺: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"。

最新更新