ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 应该在* .d.ts文件中定义TypeScript接口

2019-05-19 12:25:36  阅读:157  来源: 互联网

标签:javascript node-js typescript


TypeScript新手问题.在我们的项目中,我们使用了一些外部JavaScript库,我们需要添加* .d.ts文件.我理解这个用例以及我们需要这样做的原因.

但是,对于我们自己定义的接口,我的一个开发人员建议我们在* .d.ts文件中定义它们,以便我们可以访问接口类型而无需将其导入需要使用它的模块中.

例如,我们想为“错误优先回调”函数创建一个接口,以便我们可以在许多方面重用它.

而不是这个……

export function helloWorldEventually(callback: (err: Error, result: any) => void) {
  callback(null, 'Hello World');
}

我们可以为错误第一次回调定义一个接口,就像这样……

export interface ErrorFirstCallback {
  (err: Error, result: any): void;
}

并像这样使用它……

export function helloWorldEventually(callback: ErrorFirstCallback) {
  callback(null, 'Hello World');
}

首先,我刚刚在ErrorFirstCallback.ts中定义了ErrorFirstCallback接口,并导入它以便引用它.

另一位开发人员建议我们输入一个* .d.ts文件,然后我们就不需要导入它来引用它.

我们定义的接口何时应该在* .d.ts文件和* .ts文件中定义.

谢谢!

解决方法:

声明文件描述了外部JavaScript库的形状.例如,使用带有$的jQuery将导致没有声明文件的TypeScript错误,因为$或JQuery未定义.因此,一个声明文件创建一个接口,因此编译器知道“如果这个变量属于JQuery类型,它必须具有函数x,y,z”

在为项目创建接口时,您应该将它们放在任何您喜欢的位置:在一个大的接口文件中,在每个接口的单个​​文件中,或者在它可能属于的文件中,但是在声明文件中会非常不方便.

我个人喜欢为每个模块/类/接口提供单独的文件.但这仅仅是品味问题.

考虑创建声明文件的唯一方法是让其他开发人员可以在他们的项目中使用最终的JavaScript文件(而不是TypeScript!).

标签:javascript,node-js,typescript
来源: https://codeday.me/bug/20190519/1134954.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有