Filter.ts,mustache.js和redux.3.5.2.js位于同一目录(/ Scripts)中。 Filter.ts具有以下代码:
///<reference path="./typings/mustache.d.ts" />
import Mustache = require("mustache");
import Redux = require("redux.3.5.2");
在Visual Studio代码中,它显示了redux无法找到模块的错误。当我编译它时,它说:
Filter.ts(13,24):错误TS2307:找不到模块'redux.3.5.2'。
那么如何才能找到小胡子而不是还原?
我还没有添加输入文件,但是如何影响导入文件?它还没有在代码中的任何地方使用?删除胡须键入也不会导致打字稿找不到文件。
$ ls *.js
requirejs.2.1.22.js Filter.ts mustache.js redux.3.5.2.js
[更新]
更新了打字稿:
npm install -g typescript
tsc.cmd现在告诉我我有版本1.8.10
我的task.json看起来像:
{
"version": "0.1.0",
"command": "tsc.cmd",
"isShellCommand": true,
"showOutput": "silent",
"problemMatcher": "$tsc"
}
和tsconfig.json看起来像:
{
"compilerOptions": {
"target": "es5",
"watch": true,
"module": "amd",
"removeComments": true,
"sourceMap": false,
"outDir": "."
}
}
现在Visual Studio代码抱怨它找不到我需要的任何模块,tsc.cmd抱怨它仍然无法找到模块'redux.3.5.2'。幸运的是,在重新启动Visual Studio代码后,这些错误消失了,但仍然无法找到redux。我不确定它是否找不到文件或文件中的某些内容导致此问题,因为错误未指定确切的问题是什么。
答案 0 :(得分:1)
那么如何才能找到小胡子但不能找到redux
我可以在您的代码中看到///<reference path="./typings/mustache.d.ts" />
。所以你确实有胡子的打字,因此它被发现。我没有在样品中看到任何关于还原剂的类型,因此找不到。
答案 1 :(得分:0)
JavaScript文件无关紧要,在根目录中放置定义文件(例如:module-name.d.ts
)。
现在您的ts文件可以包含以下内容:
///<reference path="module-name.d.ts" />
import redux = require("module-name");
在require.config中,您可以执行以下操作:
require.config = {
baseUrl:settings.appRoot,
urlArgs: "version=" + settings.version,
paths: {
"module-name" : settings.appRoot + "/Scripts/SomePlace/some-module",
...
如果将类型定义放在一个目录中(例如typings),那么ts文件将如下所示:
///<reference path="../typings/module-name.d.ts" />
import redux = require("typings/module-name");
如果另一个ts文件需要这个模块,但ts文件在另一个目录中(让我们看一个更深),那么你可以执行以下操作:
///<reference path="../../typings/module-name.d.ts" />
import redux = require("typings/module-name");
您的require.config将如下所示:
require.config = {
baseUrl:settings.appRoot,
urlArgs: "version=" + settings.version,
paths: {
"typings/module-name" : settings.appRoot + "/Scripts/SomePlace/some-module",
...