2013-06-20 2 views
5

MapOptionsでタイプを適用するには、https://github.com/borisyankov/DefinitelyTyped/tree/master/googlemapsからgooglemaps型を取得しようとしています。私はフラグが正しくないとして、ズーム属性google.maps.d.tsからMapOptionsタイプを望んでいたTypescript、google.maps.d.ts、タイプ強制

/// <reference path="google.maps.d.ts" /> 
var map; 
function initialize() { 
    var mapOptions = { 
    zoom: "no, not really", 
    center: new google.maps.LatLng(-34.397, 150.644), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById('map-canvas'), 
     mapOptions); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

:だから、次の不正なコードを与えられました。 tscがこれを型エラーとして報告するのはなぜですか?

更新:もっと上の噛むようにコンパイラのためのより多くの種類の情報を含める含めるために、次のバージョンを試してみましたが、まだサイコロ:

/// <reference path="google.maps.d.ts" /> 
var map; 
function initialize() { 
    var mapOptions : google.maps.MapOptions = { 
    zoom: "no, not really", 
    center: new google.maps.LatLng(-34.397, 150.644), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById('map-canvas'), 
     mapOptions); 
} 

答えて

4

あなたのmapOptions変数を入力しないおらず、方法はありませんコンパイラがそれを推論するためのものです。

お試しvar mapOptions:google.maps.MapOptions = {(など)

zoom?:numberのインターフェイス定義は、参照するdtsでよく見えます。ここでは、コンパイラは、コンストラクタの署名を知っていて、型を推論することができますので...

map = new google.maps.Map(document.getElementById('map-canvas'), {zoom: 'this-should-fail'});

:あなたがマップコンストラクタ呼び出しの一部としてのオプションを作成した場合

型推論が働くだろう。あなたのサンプルでは、​​mapOptionsは単なる型のないオブジェクトです。 enter image description here

...とTSCからのエラー出力ホバー上またはWebEssentials出力パネルに:

UPDATE WebEssentials 2012 2.7とVS2012で 、およびTS 0.8.3.1、私は次の取得します:

コンパイルエラーです。詳細については、エラーリストを参照してください。 D:/PROJECT/App/viewmodels/hops/map.ts(147,49): '{zoom: string; } 'to' google.maps.MapOptions ':プロパティのタイプ' zoom 'は です。' {zoom:string; } 'と' MapOptions 'は互換性がありません

エラーはコンパイラから発生しますが、どの程度浮上がWebEssentialsによって達成されているか分かりません。

+0

私は両方のバリエーションを試しましたが、どちらもタイプ警告/エラーを発生させませんでした。 'tsc'をより口調にするために反転する必要のあるフラグはありますか? – Brett

+0

あなたはどのツールを使用していますか?私がVSで入手したものの更新を見てください。場合によってはツールが失敗することもあります(それはアルファです)。エラーを取得するにはコンパイルが必要です。 – JcFx

+0

私はオープンソースの 'tsc' [node.js toolchain](http://www.typescriptlang.org/#Download)を使用しています。 TypeScriptのタイプチェックの半分がVisualStudioプラグインに限定されていることを期待しています。 – Brett

関連する問題