Typescript - Могу ли я "прикрутить" типы из одного модуля в другой модуль? - PullRequest
1 голос
/ 14 июня 2019

Фон

У узла есть пакет с именем path, с которым связан файл определений типов в пакете @types/node npm.Кто-то сделал пакет на стороне клиента под названием path-browserify, который имеет тот же API , но не имеет типов.

Вопрос

Могу ли я болт на типы @types/node для path для использования с path-browserify?В основном я хочу использовать типы в одном месте с другим именем.Я пробовал это:

// types.d.ts
declare module 'path-browserify' {
  export {default} from 'path'
}

// usage.ts
import * as path from 'path-browserify'

const joined = path.join('/', 'file');
// ^ COMPILE ERROR: join not found

const joined = path.default('/', 'file'); 
// ^ RUNTIME ERROR: default not found 

Но я не могу получить доступ к API правильно.Есть ли лучший способ использовать эти определения типов?желательно без копирования path API.

1 Ответ

1 голос
/ 14 июня 2019

Ты выглядишь, как будто ты на правильном пути. Вы можете сделать что-то подобное?

declare module 'path-browserify' {
  import path from 'path'
  export default path
}

Что касается использования, попробуйте следующее (вместо использования синтаксиса * as)

import path from 'path-browserify'
path.resolve(...)

Кроме того, есть ли у модуля path экспорт по умолчанию ...?

...