我正在尝试将javascript应用程序移植到使用requirejs的typescript。我在DefinitelyTyped使用@mhegazy中的typedefinition:https://github.com/borisyankov/DefinitelyTyped/tree/master/crossroads Typescript编译器给我以下错误......
错误TS2307:找不到外部模块的“十字路口”。
这完全适用于使用“定义”的javascript。
我刚用这个库作为一个完整的例子。我错过了什么?如果TSC真的关注requirejs配置,很难挖掘文档。我知道十字路口取决于js信号。 定义和ts文件在不同目录中是否存在问题? 从我所读的here开始,我甚至不必提出参考评论。但是,如果我然后尝试使用相对路径,它也找不到它。
这是我的应用结构
申请ts / js
打字稿定义
Javascript库
index.html此脚本包含
<script data-main="app/config" src="bower_components/requirejs/require.js>
</script>
/app/config.ts:
/// <reference path="../typings/requirejs/require.d.ts" />
(function () {
requirejs.config({
baseUrl: ".",
paths: {
"crossroads": "bower_components/crossroads/dist/crossroads"
}
})
require(["app/bootup"]);
}) ();
/app/someclass.ts:
/// <reference path="../typings/crossroads/crossroads.d.ts" />
import crossroads = require("crossroads");
class SomeClass{
// do something with crossroads
}
答案 0 :(得分:1)
import crossroads = require("crossroads");
要使用import/require
,您需要:
在您的情况下,您需要为TypeScript声明一个外部模块以了解它。 E.g:
declare module 'crossroads'{
export = crossroads;
}
更新我已更新定义,因此您无需执行此操作:https://github.com/borisyankov/DefinitelyTyped/pull/3866享受!