react-redux-starter-kit icon indicating copy to clipboard operation
react-redux-starter-kit copied to clipboard

Переименовать все namespace.ts в types.ts

Open sk1e opened this issue 6 years ago • 6 comments

Не вижу ничего общего с определением https://en.wikipedia.org/wiki/Namespace Добавляет путаницы

sk1e avatar Oct 16 '19 06:10 sk1e

давно пора))

in19farkt avatar Oct 16 '19 08:10 in19farkt

ага и импортировать как * as T, as TS

kinda-neat avatar Oct 16 '19 08:10 kinda-neat

types.ts действительно лучше namespace.ts. Однако я в целом сейчас, особенно после опыта работы с Haskell проектами, стараюсь избегать файлов Types.(ts|hs), я стараюсь модули бить по бизнес-ценности, по функциональности, по семантике и тд, но не по признаку типы ли это или функции. Поэтому возможно все namespace.ts на самом деле надо раскидать по model.ts, redux-state.ts и тд, которые будут в разных папках находиться, так как это разные слои абстракций

Znack avatar Oct 16 '19 16:10 Znack

types.ts действительно лучше namespace.ts. Однако я в целом сейчас, особенно после опыта работы с Haskell проектами, стараюсь избегать файлов Types.(ts|hs), я стараюсь модули бить по бизнес-ценности, по функциональности, по семантике и тд, но не по признаку типы ли это или функции. Поэтому возможно все namespace.ts на самом деле надо раскидать по model.ts, redux-state.ts и тд, которые будут в разных папках находиться, так как это разные слои абстракций

идея хорошая, но есть момент с моделями: часто возникает потребность в модулях которые имеют собственные модели и чтобы не путать с моделями приложения я не называю их моделями. Если допускать что в рамках приложения у нас разные множества моделей существуют, тогда каждое множество должен быть подчёркнуто именем модуля в котором оно находится, но доменные модели сейчас лежат в shared/types/models поэтому нужно завести каталог для модуля по работе с доменной областью, src/domainCore например. Тогда всё станет органичным

sk1e avatar Oct 17 '19 02:10 sk1e

Ну мне кажется норм, что у тебя есть корневые модели, если модели модуля. Можно, конечно, доменные в корне складывать и называть просто domain, но там же не только модели предметки могут лежать :) Поэтому я предлагаю пока не заморачиваться, сделать модели в src как корневые, и если надо модуль может свои локальные модели тоже объявлять. По пути иерархия и так будет четко прослеживаться

Znack avatar Oct 18 '19 08:10 Znack

можно поменять для ясности, также вместо import * as React заменить на import React с флагом esModuleInterop: true

safr avatar Jan 17 '20 12:01 safr