Напишите файл объявления машинописного текста для вызываемого модуля

#typescript #type-declaration #cldr

Вопрос:

cldr-data Пакет определяется примерно так:

 function cldrData(path) {  // ... }  cldrData.all = function() {  // ... }  cldrData.entireMainFor = function(locale/*, ...*/) {  // ... }  cldrData.entireSupplemental = function() {  // ... }  module.exports = cldrData;  

Как я должен написать файл объявления типа для такого пакета?

Комментарии:

1. Разве вы не можете определить класс с all entireMainFor помощью методов и entireSupplemental в качестве методов?

Ответ №1:

Кажется, это работает:

 declare module 'cldr-data' {  interface CldrData {  (path: any, ...args: any[]): any;  availableLocales: any;  all(): any;  entireMainFor(locale: any, ...args: any[]): any;  entireSupplemental(): any;  }   declare const cldrData: CldrData;  export = cldrData; };  

Использование:

 import cldrData from 'cldr-data';  cldrData('main/en/numbers'); cldrData.entireSupplemental(); cldrData.entireMainFor('en'); console.log(cldrData.all());  

Комментарии:

1. Работает ли это? Я попытался импортировать с import cldrData, { all } from 'cldr-data'; помощью, и у меня возникла ошибка во время выполнения.

2. Если это сработает для вас, я думаю, было бы неплохо отредактировать ваш ответ с помощью инструкции usage и good import.

3. Вы правы, здесь есть проблема. Я пытаюсь кое-что исправить.