6 module export interface declare typescript
简短而甜美,使用声明或导出定义自己的接口是更好的做法吗?
// i.something.d.ts
export default interface ISomething {
myValue: string;
}
// something.ts
import ISomething from 'i.something';
export class Something implements ISomething {...}
Run Code Online (Sandbox Code Playgroud)
与
// i.something.d.ts
declare interface ISomething {
myValue: string;
}
// something.ts
export class Something implements ISomething {...}
Run Code Online (Sandbox Code Playgroud)
当然,即使声明必须导入自己的另一种类型,它也不能在环境上起作用。(除非有更好的方法可以做到)
// i.something-else.d.ts
import SomeBiggerThing from '...';
import SomeKindOfType from '...';
declare interface ISomethingElse extends SomeBiggerThing {
myValue: SomeKindOfType;
}
// something-else.ts
// ISomethingElse isn't available unless I import it, because it imports its own stuff.
import ISomethingElse from 'i.something-else';
export class Something implements ISomethingElse {...}
Run Code Online (Sandbox Code Playgroud)
Nat*_*end 19
大多数大型/成熟的 TypeScript 库避免依赖环境声明,而是export
需要在当前文件之外重用的任何内容。例如,Angular 代码库interfaces.ts
为每个模块都有一个文件,该文件被导入到需要引用接口的每个文件中:
这有几个优点:
import
文件顶部的语句显式引用。import
和export
语句,而环境类型上下文是仅 TypeScript 的概念。 归档时间: |
|
查看次数: |
2838 次 |
最近记录: |