【发布时间】:2019-01-28 12:35:51
【问题描述】:
我正在为一个包编写分型以贡献给definitelyTyped,所以我正在创建的文件将在模块上下文中解析。这很简单,类似于
import { A } from "package-a";
export function B(): void;
但是,我想声明一些对包的使用者没有用的类型和接口,但使声明更易于阅读和编写:
type ArgType = string | ArrayBuffer | Uint8Array | Readable | ReadableStream;
export function foo(x: ArgType): void;
export function bar(x: ArgType): string;
export function baz(x: ArgType): number;
问题是,一旦我在顶层声明ArgType,它实际上与foo、bar 和baz 一起从模块中导出。这意味着ArgType 出现在自动完成等的语言服务中,看起来很乱。接口和命名空间也会发生这种情况。
dtslint 对此有一个错误,strict-export-declare-modifiers,这就是我第一次发现这种行为的方式。据我所知,在编写实际的 TS 模块(即声明/分型文件)时,这不是问题。难道不能在这个文件中声明消费者看不到的东西吗?
【问题讨论】:
标签: typescript typescript-typings definitelytyped