Я думал, что понимаю, как работает импорт, но сегодня обнаружил, что у меня нет.
Имею чистый модуль JavaScript, такой как:
function MyClass() { ... }
util.inherits(MyClass, EventEmitter);
MyClass.prototype.someMethod = funtion(x) { ... }
...
module.exports = MyClass;
И теперь я импортирую этот модуль в файл TypeScript(как я думал, он использует тот же синтаксис, что и импорт ES6) и обнаружил, что это работает:
import * as MyWebSocket from '../utils/websocket';
И это - не:
import MyWebSocket from '../utils/websocket';
Также это не работаетлибо:
import { MyWebSocket } from '../utils/websocket';
Как я понимаю, import X from Y
должен работать, если модуль экспортирует что-то с ключевым словом default
, например export default X
(и равным синтаксису ES5 является module.exports = X
).И import { X } from Y
должен работать, если экспортировать что-то не по умолчанию (и синтаксис ans similat ES5 равен module.exports = { X }
).
Но я вижу, что ошибаюсь.Не могли бы вы исправить меня?