2017-02-14 10 views
2

Я хочу использовать модуль assert в browserify/tsify связки. См. https://www.npmjs.com/package/assert и https://github.com/substack/browserify-handbook#builtins и https://nodejs.org/api/assert.html. Короче говоря, это узел-js совместимый модуль assert в браузере, который является браузером встроенного.Самостоятельное объявление типа типа в TypeScript

Поэтому я добавил @types/assert в мой package.json. Однако модуль декларации не распознается (кажется, глючит). Поэтому я хочу сделать эквивалент node_modules/@types/assert, но за пределами node_modules, так как node_modules не должен находиться в исходном контроле.

Возможно ли это? Если нет, может/должен использовать синтаксис старой школы /// <reference или declare module "assert" или что?

+0

Какой вы используете systemjs или CLI – Aravind

+0

я не использую systemjs. Я не уверен в CLI, но кажется, что я использую встроенный загрузчик браузера для модулей CommonJS. – nponeccop

ответ

0

Модули декларации выглядит нормально ко мне на первый взгляд (не тщательный тест), но в любом случае, предполагается, что вы говорите о this library

Создать typings/assert/assert.d.ts каталог/подкаталог/файл, который будет находиться под контролем источника

assert.d.ts должен быть построен как определение внешнего модуля, который экспортирует один символ assert. Содержание почти прямой копией того, что находится в @ типов/утверждают (с необходимыми поправками, вы упомянули)

declare module 'assert' { 

    function assert(value:any, message?:string):void; 

    namespace assert { 

     export function fail(actual?:any, expected?:any, message?:string, operator?:string):void; 

     ... 

    } 

    export = assert 

} 

в tsconfig.json, просто убедитесь, что содержимое каталога typings включен (т.е. не исключается) из сборник.

+0

Уточненный мой вопрос. Это не «power-assert», но ваши предложения по-прежнему актуальны. – nponeccop

+0

Это объясняет, что объявления модуля «кажутся ошибками», потому что определения, загруженные из @ types/assert, явно указывают, что они предназначены для 'power-assert' –

+0

https: // www.npmjs.com/package/@types/assert четко говорит: «Этот пакет содержит определения типов для assert и power-assert» – nponeccop

Смежные вопросы