1

Если вы должны были написать свою библиотеку с открытым исходным текстом, как бы вы структурировали описания машинописных и машинописных текстов? Из того, что я понимаю, файлы определения действительно существуют для компилятора, поэтому, когда ваша библиотека потребляется, есть интеллигент, чтобы помочь потребителю.Как написать файлы описания типов для новой библиотеки?

Однако, как файлы определения работают внутри при разработке библиотеки? Не могли бы вы поместить все ваши типы (интерфейсы, классы и т. Д.) В файл {module} .d.ts и ссылаться на файл определения внутри, чтобы вам не приходилось дважды писать типы (один раз в {module}. ts и один раз в {module} .d.ts?

В вариантах компилятора типа машинописного текста, в чем смысл установки «объявления» в true? Мне не представляется целесообразным автоматизировать создание файла определения, если оно не будет очень полезно (например, комментарии).

Если ваша библиотека имеет несколько модулей, вы бы написать отдельные определения для каждого модуля и добавить ссылки между определениями затем объединить их с некоторыми automater (т.е. глотком хрюкать)?

Что я s рекомендуемый способ разоблачить вашу библиотеку, чтобы пользователи-машинописные пользователи и пользователи javascript могли использовать вашу библиотеку?

Как бы вы пишете тесты в машинописном тексте? Не могли бы вы импортировать модули типов в тестовые файлы?

ответ

1

При разработке библиотеки в машинописном тексте вы не используете определения своих собственных классов. Они «автономны» и уже предоставляют всю информацию о типе в transpiler/IDE. Определения, как вы упоминали для внешних потребителей.

Пункт установки declation в true - это избавиться от утомительной работы по сбору информации о типе из классов типов и вставке в файлы определений. Как я уже сказал, эта информация уже присутствует в файлах машинописных файлов и может автоматически извлекаться транспилером.

Что касается способа организации ваших определений и их раскрытия - я уверен, что существует несколько разных способов, одна вещь наверняка - вы не хотите писать одни и те же определения классов вручную в двух местах. Сказав, что я могу дать вам пример того, как я выставляю библиотеку project и потребляю ее в another one. Обратите внимание на файлы index.ts там и как открывается один из них в поле package.json -> typings. Там вы также найдете примеры модульных тестов для библиотеки через жасмин.

Надеюсь, что это даст вам некоторую информацию о том, как идти процесс с развитием вашей библиотеки.

Смежные вопросы