Для Node 10 и выше лучше использовать strict assert, который можно импортировать как названный import и переименованный для удобства as assert
:
import { strict as assert } from 'assert';
assert.ok(true);
assert(true);
strict
– это экспорт с именем из встроенного -в assert
модуле. Именованный экспорт позволяет избежать многих проблем, упомянутых в вопросе, проблем, связанных с использованием одного экспорта module.exports
CommonJS и его импортом в качестве импорта по умолчанию. В TypeScript 2.7 --esmoduleinterop
.
Остальное - старый ответ, написанный в 2016 году:
import * as assert from 'assert';
assert.ok(true);
assert(true);
Если вы запускаете typescript из того же каталога, где находится node_modules
, вам даже не нужно добавлять /// <reference ...
Как отметил в комментарии @Ryan Cavanaugh, этот синтаксис предполагает, что он будет работать в среде, где модули ES6 изначально поддерживаются (такой среды пока не существует). Это неправда, невозможно иметь модуль ES6, который можно использовать и как пространство имен, и как функцию, поэтому я думаю, что этот синтаксис по-прежнему лучше соответствует действительности:
import assert = require('assert');
но вы должны использовать параметры машинописного текста
--target es6 --module commonjs
чтобы избавиться от ошибки Import with 'require' cannot be used when targeting ECMAScript 6 or higher
. Вы также можете использовать только опцию --target es5
, если это то, что вам нужно.
person
artem
schedule
05.10.2016
assert
. Я думаю, что измененияtsconfig.json
из этого потока в основном являются альтернативой строке/// reference...
в моем примере. - person Burt_Harris   schedule 06.10.2016import assert = require('assert')
и игнорировать тот факт, что Visual Studio помечает его как несовместимый с ES2015? - person Burt_Harris   schedule 06.10.2016