require
его Я протестировал require('lit-html')
, и меня встретили с этой ошибкой:
/home/chbphone55/Workspace/test/node_modules/lit-html/lit-html.js:31
import { defaultTemplateProcessor } from './lib/default-template-processor.js';
В нем четко говорится, что ошибка исходит из lit-html/lit-html.js:31
, где в строке используется синтаксис модуля ES import
.
Вы можете перенести его, используя такие инструменты, как Babel или подобные. Однако вы можете попробовать использовать синтаксис модуля ES, чтобы импортировать lit-html без его переноса.
Пример:
// index.js
import { html } from 'lit-html';
type="module"
Если вы не можете использовать метод type="module"
выше, вы также можете использовать Пакет ESM .
ESM - это невероятно простой загрузчик модулей ECMAScript, не требующий больших затрат, без связок.
blockquote>Вот несколько примеров того, как его использовать:
]
- Использование флага запроса узла (
-r
) для загрузкиesm
раньше всего остальногоnode -r esm index.js
- Загрузка
esm
в ваш основной файл и загрузка остальной части вашего кода.// Set options as a parameter, environment variable, or rc file. require = require('esm')(module/*, options*/) module.exports = require('./main.js')
У Scala есть черты, которые являются интерфейсами на трещине. Действительно, они - каковы интерфейсы должны были быть, по общему признанию, существуют ограничения когда дело доходит до конструкторов, но это не действительно грандиозное предприятие, рассматривая то, что, если у Вас есть два интерфейса оба имеющие требования конструктора, Вы столкнулись с теми же проблемами.
Затем существуют частичные методы, и большим количеством способов, которыми многие хорошие принципы объектно-ориентированного проектирования, базирующиеся вокруг управления зависимостью, могли почти рассматриваться как способы получить единицы работы, которые более компонуемы, действительно необходимо задаться вопросом. Только вместо способности работать над вводами и выводами метода или предопределенными точками, где объект/метод стратегии используется, у Вас есть немного больше гибкости.
Добавьте к тому компаньону объекты и внезапно фабрики, и намного больше становится намного более тривиальным.
Учитывая это имеет место, действительно можно убежать от необходимости использовать интерфейсы везде, и с более мощной системой дженериков, часть из того, что сделано с интерфейсами, высосан там.
Обычно смотря на код Scala это имеет тенденцию скорее анализироваться, и интерфейсы, кажется, не основной инструмент в этом.
Это - действительно заставляющий думать вопрос.
Это, кажется, не общий шаблон (по крайней мере, в Scala, которого я видел), но я не могу первое, что пришло на ум думать о хорошем аргументе против него, если это - то, что Вы действительно хотите сделать.
С другой стороны, я не думаю, что сделал бы это тот путь (я осуществлю рефакторинг, когда у меня была фактическая потребность, вместо того, чтобы создать в такой "гибкости" для гипотетического будущего, которое никогда не могло бы прибывать). Но лучшим аргументом против него, о котором я могу думать, является аналогия с предотвращением бесполезной косвенности (не используйте указатель на указатель на указатель на целое число, когда все, в чем Вы нуждаетесь, является целым числом), и это не очень востребовано.