打字稿进出口约定

问题描述 投票:2回答:1

与此相反的Java(和其他语言),打字稿为您提供多种方式来导出和导入的东西(类,函数等)。 例如,您可以按文件export多个类,常量,函数等。 您还可以定义每个文件1默认的导出。 在另一边,你可以import只有默认export,使用别名导入所有或导入给定的东西。 从Java的到来,我想知道,如果有任何约定,特别是关于constants和functions。 比方说,我有一个实用程序文件,有很多functions的。在Java中我会创建一个File Util.java class Util,其中包含所有static functions。 在TypeScript我有以下几种可能:

  1. 导出的每一个功能和使用import * as Util导入。
  2. 创建class Utils和出口仅此一等级static function

在这两种情况下,我可以使用Util.functionName(),就像在Java调用函数。

另一种情况是有一些classs一个constant。 比如我有一个字段class Car一个type。也有对可用types常量,像TYPE_SUVTYPE_SPORT等。

同样,我可以将它们定义为“顶级”常量和导出,然后类Car。但我也可以将它们定义为public static readonly级内Car,只导出类。 使用第一种方式,我将有一个大的柠声明import,如果我需要在其他文件中所有的常量。此外子类不会“继承”这些常数。 然而,使用readonly代替const感觉有种奇怪,我...

所以我一直在寻找某种约定的,但我没有找到太多。 我只找到像this的一些提示。

那么,是否有关于出口和进口打字稿任何指引,其照顾有关解释的问题?我也在寻找最好的方式,对于工具(重构,自动导入,组织进口等)的集成。

谢谢。

javascript java typescript conventions
1个回答
1
投票

(恐怕这是有些意见基础去虽然有在选择一个比另一个客观因素)

  1. 导出的每一个功能和使用进口*作为的Util导入。
  2. 创建静态函数和出口只有这个类的类的Util。

我更喜欢1号),因为2)不会带来任何好处,并可能导致有人实例化Util类无缘无故(,反之为Java,这不能阻止)。

我可以将它们定义为“顶级”常量和导出,然后类汽车。但我也可以将它们定义为汽车级内public static readonly,只导出类。

至于常量,则readonly修改只适用在编译的时候。因此,作为类属性,它们仍然可以在运行时修改。我,所以,宁愿让他们在模块中顶级常数(文件)

从Basarat优秀的手册也是我的“参考”和我分享他的默认出口不带来多少除了困惑,因为与命名出口的意见,也可以如在进口重命名

import { OriginalName as MyPreferredName}  from './OriginalName'
© www.soinside.com 2019 - 2024. All rights reserved.