TypeScript类型定义最佳实践

时间:2017-11-10 06:58:01

标签: javascript typescript typescript-typings

我已阅读了几十页,试图找出在TypeScript中设置类型定义的最佳方法。

  • 我曾经在我的项目中的某个地方有一个typings.ts文件,然后通过执行类似
  • 之类的操作,在每个文件中导入类型

import {IMyCustomType} from './typings';

在我的打字文件中,我会声明我的类型:

export interface IMyCustomType {...}

他们使用export interface IMyCustomType {..}

而不是declare interface IMyCustomType {..}

这个设置对我来说有一个很大的优势:我不需要在每个文件中显式导入类型,并且接口在整个项目中直接可用。

问题:

1)在编译期间是否会自动导入所有**/*.d.ts文件是否正确?

2)使用declare并使所有类型都可用于整个项目是一种好习惯吗?

3)是否有标准的目录路径和名称,我应该在哪里放置我的类型定义?

基本上我试图使我的全局接口在我的项目中随处可用,而不必明确地导入它们。这是我应该做的事情,我如何设置我的项目来实现这个目标?

更新

在我的团队提出这个问题之后,大多数人反对拥有环境类型,因此我们决定在需要时导入类型。为了使这更容易,我们依靠我们的IDE自动导入所述类型。

2 个答案:

答案 0 :(得分:1)

从Typescript 2开始,您应该使用d.ts个文件。使用这种方法可以减少很多配置文件。

您可以在以下网址找到更多相关信息:

答案 1 :(得分:1)

您应该使用@types NPM范围。您可以在Typescript Handbook中找到更详细的指南,但基本上您只需要运行NPM命令:

npm install --save @types/lodash

关于您的问题,基本上使用这种方法您根本不需要担心类型定义文件,它们对第三方库的存在对您来说是透明的(您不关心它们的位置)或者如何导入它们,你只需要自己导入模块。)

关于使用declare,我认为这是一个单独的主题,但您可以查看此问题:What's the difference between "declare class" and "interface" in TypeScript