2017-03-27 5 views
3

モナコのaddExtraLibを使用してアンビエント宣言ファイルを追加する方法が分かります。何明確ではありませんが、エディタでの活字体のコードが実行できるように、外部宣言ファイルを使用して、この機能を使用する方法である:モナコのセットアップ側ではモナコのaddExtraLibを外部型定義で使用する方法

import * as External from "external" 

External.foo(); 

を、これは動作していないよう:

// compiler options 
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ 
    target: monaco.languages.typescript.ScriptTarget.ES2016, 
    allowNonTsExtensions: true, 
    moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs, 
    module: monaco.languages.typescript.ModuleKind.CommonJS, 
    noEmit: true, 
    noLib: true, 
    typeRoots: ["node_modules/@types"] 
}); 

// extra libraries 
monaco.languages.typescript.typescriptDefaults.addExtraLib(
    'export declare function foo():string;', 'node_modules/@types/external/index.d.ts'); 

monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({ 
    noSemanticValidation: false, 
    noSyntaxValidation: false 
}) 

答えて

4

少し遊んだ後、解決策が見つかりました。基本的には、明示的なファイルURLを使用してcreateModelを使用してファイルをロードする必要があります。これを行うと、node_module/@typesの相対ファイルパスが機能します。遊び場で使うことができる私の実用的な解決策は次のとおりです。

関連する問題