2017-11-10 5 views
1

画像:ts-checkの指定されたモジュールのtypescriptグローバル型を正しく宣言するには?私は、定義ファイルとモジュールXptoをしました

// runtime.d.ts 
import {Xpto} from 'xpto'; 

declare const xpto: Xpto; 

そして最後にJSファイルに私が持っている:

// node_modules/@types/xpto.d.ts 
export interface Vertx { 
    createHttpServer(handler:() => void) : void; 
} 

とヘルパーを宣言するには、私のグローバルを追跡します

/// <reference path="runtime.d.ts" /> 
// @ts-check 

xpto.createHttpServer(function (req) { ... }); 

何らかの理由でvscodeにエラーが表示されます。Cannot find name "xpto"ですが、タイプをインポートすると機能します:

import {xpto} from "runtime" 

しかし、これは実際のランタイムモジュールがないため、壊れたコードを生成します。これは、どの変数がグローバルスコープで使用できるかを宣言するための方法でした。

答えて

1

私は、importexportの問題は、d.tsファイルをモジュール宣言にすることが問題だと思います。そのため、グローバルバージョンは動作しませんが、importのバージョンは動作します。

declare globalを使用してグローバルとしてxptoを宣言明示的に試してみてください:

import {Xpto} from 'xpto'; 

declare global { 
    declare const xpto: Xpto; 
} 
関連する問題