Работая над проектом, который требует, чтобы я объявил новый модуль существующей библиотеки Javascript, однако при создании типизаций я заметил, что при попытке расширить пространство имен, как это предписывается в документации для машинописи , онполностью переопределяет предопределенное пространство имен.
Я не уверен, является ли это недопустимой операцией в машинописи или проблема с тем, как VSCode интерпретирует типизацию.
Пример:
// file: existing.d.ts
export as namespace A;
export class Foo {}
// file: extensions.d.ts
namespace A {
export class Bar {}
}
// resulting intellisense output
A.Foo // doesn't exist
A.Bar // exists
Однако, если исходное объявление пространства имен изменено на формат namespace A {}
, оно затем работает как положено.
Пример:
// file: existing.d.ts
namespace A {
export class Foo {}
}
// file: extensions.d.ts
namespace A {
export class Bar {}
}
// resulting intellisense output
A.Foo // exists
A.Bar // exists
Полагаю, главный вопрос в том, допустимо ли это даже в Typescript или это проблема с VSCode.