首页 > 解决方案 > 如果用作类型的容器,打字稿中命名空间的优势是什么

问题描述

为什么我要在命名空间中保留一个类型而不是直接导出它。

示例我可以这样做

export interface Document {
  first_name: string
  status: Document.DocumentStatus
}

export namespace Document {
  export type DocumentStatus = 'active' | 'inactive'
}

但是我可以使用命名空间来实现相同的结果

export interface Document {
  first_name: string
  status: DocumentStatus
}

export type DocumentStatus = 'active' | 'inactive'

在这种情况下使用命名空间有什么好处?

标签: typescriptnamespaces

解决方案


以我的经验,命名空间有助于理清接口的用途,尤其是当接口开始堆积时。

例如

    Document.Status
    Document.Content
    Document.Owner
    Person.Name
    Person.Status
    Person.Address

推荐阅读