使用Typescript,有没有办法从外部模块导入类型?导入外部定义
基本上我只想让一个模块知道另一个模块的类型(为Intellisense提供支持),但是没有JavaScript中的输出。我想这样做是因为有问题的模块可能已经加载,也可能没有加载 - 即没有硬依赖性,但我想要一些类型化的代码运行并使用该模块(如果存在的话)。
希望这是显而易见的。
使用Typescript,有没有办法从外部模块导入类型?导入外部定义
基本上我只想让一个模块知道另一个模块的类型(为Intellisense提供支持),但是没有JavaScript中的输出。我想这样做是因为有问题的模块可能已经加载,也可能没有加载 - 即没有硬依赖性,但我想要一些类型化的代码运行并使用该模块(如果存在的话)。
希望这是显而易见的。
您可以使用定义文件以及引用注释,这样可以在不添加任何导入语句(例如require
或define
)的情况下使用这些类型。
///<reference path="module.d.ts" />
您可以自动生成编译时定义文件,虽然你的目的,你可能会想手摇自定义一个(取决于你想如何使用它 - 自动人会想到要导入)。
ModuleA.ts
class ExampleOne {
doSomething() {
return 5;
}
}
export = ExampleOne;
ModuleB.ts
class ExampleTwo {
doSomething() {
return 'str';
}
}
export = ExampleTwo;
用途:
import B = require('moduleb');
var a = new ExampleOne();
var b = new B();
为了使这项工作,你会创建ModuleA.d.ts:
ModuleA.d.ts
declare class ExampleOne {
doSomething(): number;
}
,然后引用它,如下所示:
/// <reference path="modulea.d.ts" />
import B = require('moduleb');
var a = new ExampleOne();
var b = new B();
为什么这是downvoted? – ditoslav 2015-10-28 14:20:21