Как расширить определение типа стороннего объекта - PullRequest
0 голосов
/ 20 марта 2020

Я использую пакет npm, который экспортирует объект с именем store, который я использую в своем приложении. Я хочу определить разрешенные свойства для хранилища - используя JSDo c - чтобы я мог получать автозаполнение и предупреждения о неправильных типах.

Пакет ( реагировать-вспомнить ) использует TypeScript и объект store определяется интерфейсом Store. Таким образом, чтобы добиться этого с помощью TypeScript, я бы сделал:

// types.d.ts in my project
declare module 'react-recollect' {
  interface Store {
    id: number;
    name: string;
  }
}

Мой вопрос, что эквивалентно JSDo c?

Ближайшее, что я мог бы получить, это:

import { store } from 'react-recollect';

/**
 * @typedef {object} MyStore
 * @property {number} id
 * @property {string} name
 */

/** @type {MyStore} */
const myStore = store;

myStore.name = 'David'; // Correct
myStore.id = 'a string'; // Warning

Но я не хочу переназначать магазин таким образом.

Любая помощь очень ценится!

...