【发布时间】:2016-10-18 16:20:15
【问题描述】:
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 文件中定义。
谢谢!
【问题讨论】:
-
afaik。
*.d.ts-files 主要用于用类型注释普通的*.js文件/库。我不确定我是否同意使用这样的定义文件,或者我是否将其放在interfaces.ts中,然后在主 ts 文件中引用。或者保持详细/安全并在每个需要它的文件中引用接口文件。
标签: javascript node.js typescript