如果我尝试定义一个与 TypeScript 自动导入的类型同名的类,例如
class Map {
}
然后我收到以下错误
error TS2000: Duplicate identifier 'Map'.
我想做的是能够重命名或避免完全导入 TypeScript 库类Map
,以便我可以用相同的名称定义自己的。
将 myMap
放入模块中(根据以下答案之一)会有所帮助,但我仍然不能通过不合格的名称(即通过导入)来引用它,尽管这次没有关于重复名称的抱怨;导入根本不做任何事情:
假设A.ts
包含:
module A {
export class Map {
}
}
并B.ts
包含:
/// <reference path='A.ts'/>
import Map = A.Map
function test (m: Map) {
}
为了使这个编译我需要替换m: Map
为m: A.Map
. 否则编译器会抱怨我缺少一些通用参数,因为它假设我的意思是Map
TypeScript“前奏曲”中的类型。
我觉得我应该能够定义一个“本地”名称(通过显式声明或通过导入),它在前奏中隐藏任何等效名称的定义;或者,我应该能够从前奏中手动禁用特定类型的导入(就像在 Haskell 中一样)。