2016-12-23 12 views
1
私はtypescriptですから、いくつかの機能にアクセスすることができ JSプログラミングのためのVisual Studioのコードを使用

VisualStudioCodeVSCode - JS

からモジュールの種類を参照。エディタはすべて.d.ts個のファイルを解析するので、変数の型に役立ちます。たとえば、それは次のことを認識しない:

any.js

/** 
* @param {string} s 
* @return {Promise<Person>} 
*/ 
function foo(s){ ... } 

foo('Jhon').then((p) => p.name) 

index.d.ts今

interface Person { 
    name: string 
    surname: string 
} 

を、私は種類(インターフェイス、クラスにアクセスしたいです。何でも)node.d.ts宣言ファイルで宣言されています。例えば、Readableインタフェースを宣言するモジュールstreamを宣言します。

私はこのような何かを探しています:

const stream = require('stream') 

/** 
* @param {stream.Readable} stream 
*/ 
function goo(stream) { ... } 

しかし、それはしてみましたwork.I'veしません:

  • {} internal.Readable
  • {stream.Readable }
  • {Node.stream.Readable}
  • {Node.Readable}
  • {Node.internal.Readable}

答えて

2

VSコード1.18以降は、requireをJSDocタイプで使用する場合の制限です。

使用import

import * as stream from 'stream' 

/** 
* @param {stream.Readable} stream 
*/ 
function goo(stream) { ... } 

または明示的にReadableをインポートします。

const stream = require('stream') 
const {Readable} = require('stream') 

/** 
* @param {Readable} stream 
*/ 
function goo(stream) { ... } 

https://github.com/Microsoft/TypeScript/issues/14377はまた、あなたが指定できるように追跡し、私はこの特別

いくつかの可能な回避策を追跡するためにthis issueを開きましたモジュールはjsdocsで直接インポートされます。