如何在打字稿 .d.ts 文件中模块化名称速度



我有一个index.d.ts.主命名空间包括两个命名空间和同名接口。这是一个例子:

// index.d.ts
export = API
export as namespace API
declare namespace API {
export const val1: any
export func1(): void
export namespace Query {}
export interface Query {}
export namespace Mutation {}
export interface Mutation {}
}

此示例代码运行良好。我想模块化这个文件。尽管我已经尝试了很多方法,但我失败了。例如

// index.d.ts
import { Query } from './query.d.ts'
import { Mutation } from './mutation.d.ts'
export = API
export as namespace API
declare namespace API {
export const val1: any
export func1(): void
// pseudocode
export Query
export Mutation
}
// query.d.ts
export namespace Query {}
export interface Query {}
// mutation.d.
export namespace Mutation {}
export interface Mutation {}

请帮帮我 T^T

index.d.ts应该是:

import { Query as Query1 } from './query'
import { Mutation as Mutation1 } from './mutation'
export = API
export as namespace API
declare namespace API {
export const val1: any
export function func1(): void
export import Query = Query1;
export import Mutation = Mutation1;
}

您可以使用import X = Y语法为现有符号定义别名(该别名包含其所有含义:值、类型和/或命名空间(,然后从namespace API导出别名。 棘手的部分是,您最初必须以备用名称导入QueryMutation,在我的示例中Query1Mutation1,以便您可以使用所需的名称定义别名QueryMutation而不会遮蔽外部QueryMutation。 (export import Query = Query将是一个循环定义;没有办法明确地引用外部范围。

最新更新