TypeScript によって自動的にインポートされる型と同じ名前のクラスを定義しようとすると、
class Map {
}
次に、次のエラーが表示されます
error TS2000: Duplicate identifier 'Map'.
私がしたいのは、名前を変更できるようにするか、TypeScript ライブラリ クラスを完全にインポートしないようにしMap
て、同じ名前で自分自身を定義できるようにすることです。
myMap
をモジュールに入れると(以下の回答の1つに従って)役立ちますが、非修飾名で(つまり、インポートによって)参照することはできませんが、今回は名前の重複についての苦情はありません。インポートは単に何もしません:
以下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 でできるように)。