编程语言
首页 > 编程语言> > java – 传统文件夹层次结构中的TypeScript类

java – 传统文件夹层次结构中的TypeScript类

作者:互联网

我是一个经验丰富的Java开发人员,需要移植Java应用程序以供Web使用,我一直在考虑使用Typescript来实现这一点.目前,我希望将传统的Java风格的包保持为文件夹的层次结构和每个“叶”文件的单个类.

我一直在查看Typescript文档,我看到像../path/to/module这样的东西.这些都是相对的吗?是否有某种基本目录选项,我可以得到类似于导入com.ancient.java.MyType;?

另外,正在声明一个包com.ancient.java;在Typescript中要做些什么?

我查看了文档,但是我发现内部和外部名称空间和导出等所有内容都不容易阅读.

有人可以把它归结为让我感觉像Java一样的东西吗?我确定我会在以后根据需要介入所有复杂的东西.这在代码中是什么样的?

解决方法:

将打字稿类组织成每个文件1级和有组织的文件夹层次结构是完全可以接受的,甚至可以在打字稿中进行鼓励.

如果使用typescript 2.0或更高版本,则路径不需要是相对的.您可以使用baseUrl:属性指定非相对(即无或……)路径的根.比如你有:

tsconfig.json 
src/
   foo/
       foo.ts
   bar/
       bar.ts

你可以设置“baseUrl”:“./ src”然后你可以导入’foo / foo’并导入’bar / bar’而不使用相对路径导航.

我不鼓励你试图在打字稿中声明包/名称空间/内部模块等.这些类型的东西大多是过去的遗物,而不是我想冒险在新项目中使用的东西.

我建议坚持使用基于文件的模块,因为这是用于编写应用程序的现代推荐方法.

具有导入或导出语句的文件被视为“文件模块”.其中定义的所有内容都是文件专用的,不会污染全局命名空间.需要共享的内容需要从其他文件导出和导入.

例如,您可以在文件结构中编写MyType类,如下所示:

src/
    com/
        ancient/
            my-type.ts

my-type.ts看起来像:

export class MyType{
     constructor(){
        console.log('Hello World');
     }
}

然后你可以在其他文件中导入它,如:

import {MyType} from 'com/ancient/my-type'

您不应该使用关键字命名空间或模块.这些主要是只能在类型声明文件中找到的东西.

标签:modularity,java,typescript,namespaces
来源: https://codeday.me/bug/20190828/1755429.html