gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:05:46 25 4
gpt4 key购买 nike

我是一名经验丰富的 Java 开发人员,需要移植 Java 应用程序以供网络使用,我一直在考虑使用 Typescript 来完成这项工作。目前,我想保留传统的 Java 包样式,即文件夹层次结构和每个“叶”文件一个类。

我一直在查看 Typescript 文档,我看到了类似 ../path/to/module 的内容。包括亲戚都这样吗?是否有某种基本目录选项,我可以获得类似于 import com.ancient.java.MyType; 的内容?

此外,声明一个 package com.ancient.java; 是要在 Typescript 中完成的事情吗?

我查看了文档,但我发现它们并不容易阅读,因为所有关于内部和外部 namespace 以及导出等的讨论都是如此。

有人可以将其归结为让我感觉像 Java 的东西吗?我敢肯定,我稍后会根据需要逐步了解所有复杂的内容。这在代码中看起来像什么?

最佳答案

将您的 typescript 类组织为每个文件 1 类和有组织的文件夹层次结构是完全可以接受的,甚至在 typescript 中受到鼓励。

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

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

你可以设置 "baseUrl": "./src" 然后你可以 import 'foo/foo'import 'bar/bar' 不使用相对路径导航。

我不鼓励你尝试在 typescript 中声明包/命名空间/内部模块等。这些类型的东西大多是过去的遗物,我不会冒险在新项目中使用。

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

具有importexport 语句的文件被认为是“文件模块”。其中定义的所有内容都是文件私有(private)的,不会污染全局命名空间。应该共享的东西需要从其他文件导出和导入。

例如,您可以在这样的文件结构中编写 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'

您不需要使用关键字 namespacemodule。这些大多只能在类型声明文件中找到。

关于java - 传统文件夹层次结构中的 TypeScript 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40325502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com