0

如果我尝试定义一个与 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: Mapm: A.Map. 否则编译器会抱怨我缺少一些通用参数,因为它假设我的意思是MapTypeScript“前奏曲”中的类型。

我觉得我应该能够定义一个“本地”名称(通过显式声明或通过导入),它在前奏中隐藏任何等效名称的定义;或者,我应该能够从前奏中手动禁用特定类型的导入(就像在 Haskell 中一样)。

4

1 回答 1

2

把你的类放在一个模块中..

module SomeNamespace {
    class Map {
    }
}

这将使您的类与默认 Map 类不同。

于 2013-09-24T11:13:05.933 回答