2017-02-14 79 views
2

我想在browserify/tsify bundles中使用assert模塊。見https://www.npmjs.com/package/asserthttps://github.com/substack/browserify-handbook#builtinshttps://nodejs.org/api/assert.html。簡而言之,它是瀏覽器中與node-js兼容的assert模塊,即browserify內置。TypeScript中的Own @ types-style聲明

所以我加了@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清楚地說「這個軟件包包含斷言和斷電的類型定義」 – nponeccop