Есть ли способ скомпилировать машинописный текст в es6, но заставить его использовать require js? - PullRequest
0 голосов
/ 17 июня 2020

Я пишу NodeJS машинописный проект. Допустим, у меня есть следующий файл:

class MyArray extends Array {
   myCustomMethod() { /* do something */ }
}

Однако, когда я делаю

let myarray = new MyArray();

myarray.myCustomMethod();

, я вижу

TypeError: myarray.myCustomMethod is not a function

Итак, я попытался изменить машинописный текст От module до es6 (чтобы сохранялся синтаксис class extends), но затем он использует ключевые слова import и export, а NodeJS не поддерживает это изначально.

Is есть ли способ заставить компилятор машинописного текста использовать require js, но также использовать es6?

Или это моя проблема, и мне чего-то не хватает?

1 Ответ

0 голосов
/ 17 июня 2020
Параметр

TypeScript --module (также -m) позволяет указать, для какой модульной системы он должен выводить. "CommonJS" - вариант, использующий require. Подробности в документации по параметрам конфигурации проекта .

Так, например, в tsconfig.json, "module": "CommonJS" в сочетании с "target": "ES2015" (или "ES2020" или "ESNext", и т. Д. c.) должен выводить код с использованием синтаксиса require, а также class.

...