Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Typescript中,如何使类定义可用_Typescript_Amd - Fatal编程技术网

在Typescript中,如何使类定义可用

在Typescript中,如何使类定义可用,typescript,amd,Typescript,Amd,我是typescript新手,正在尝试迁移现有项目。它是用Durandal编写的,因此使用了AMD 我的问题是如何使我编写的类的定义可用于其他文件,以用于参数定义或接口等 说清楚一点。我定义了一个类,例如 class Example{ constructor(){ //some other code } } export = Example 如果我想实例化那个类,我就用require导入它,这很好 但是,如果我只想在另一个文件中使用它作为参数类型,例如 function

我是typescript新手,正在尝试迁移现有项目。它是用Durandal编写的,因此使用了AMD

我的问题是如何使我编写的类的定义可用于其他文件,以用于参数定义或接口等

说清楚一点。我定义了一个类,例如

class Example{
   constructor(){
     //some other code
   }
}
 export = Example
如果我想实例化那个类,我就用require导入它,这很好

但是,如果我只想在另一个文件中使用它作为参数类型,例如

function(value:Example){
}
或者在接口中

interface exampleInterface{ 
   value:Example
}
在第一个示例中,我可以使用require导入它,但这似乎不是正确的方法,因为我正在发出代码,而我所做的只是在编译时使用该类。如果我在第二个示例中使用require,那么其他类将不再看到该接口

到目前为止,我找到的唯一方法是在一个单独的文件中声明该类的环境版本。这是可行的,但显然是一个重复和维护的问题

有更好的办法吗

谢谢

在第一个示例中,我可以使用require导入它,但这似乎不是正确的方法,因为我正在发出代码,而我所做的只是在编译时使用该类

这是推荐的方法。基本上,它确保具有类定义的文件在该文件之前由运行时解析。请注意,如果不使用导入的内容作为变量,那么代码emit就不具有依赖性


有关文档,请参见。

谢谢,巴萨拉特。。我只是想澄清一下其他遇到这个问题的人。使用require导入时遇到的另一个问题是,如果我导入到一个接口中,该接口对其他文件不再可见。看起来我没有正确地声明接口。我需要显式导出接口“导出接口示例”,然后我可以使用rquire将它们导入其他文件中。