2016-05-10 7 views
0

初めてTypeScriptを試しています。私はモジュールの背後にある原則を得ますが、いつでも私が輸出しようとすると、type私は問題を抱えているようです。次を与え例えば1つまたは複数のタイプをエクスポートする

export type typeOne = "A" | "B" | "C" | "D"; 

基本的にコンパイルされたときは、私は理解していない生成されたファイルの中だけ"use strict"で私を残して、私の空の出力を提供します。

export Constants { 
    type typeOne = "A" | "B" | "C" | "D"; 
    type typeTwo = "X" | "Y" | "Z"; 
} 

しかし、私も基本的なケースが働いて得ることができないようだ。私はもともとやろうとして始めた何

Constantsオブジェクト内のいくつかのenum種類をエクスポートすることでした。私は本当に明白な何かを見逃していますか、あるいは私はTypeScriptで何らかの制限を打つのですか?

+0

タイプはタイプスクリプトのみですが、javascriptにはタイプの概念がないのでコンパイル時に生き残ることはできません –

+0

@NitzanTomer OK - それは完璧な意味があると思うときに追加しますか?答えとして? – Ian

答えて

1

javascriptは型指定された言語ではないため、宣言された型はすべてコンパイルプロセスで削除されています。

定義した型は、コンパイラが特定の値のセットに対してチェックする文字列です。

これらの三つの機能:

function fn1(value: "A" | "B" | "C"): boolean { 
    return value === "A" || value === "B" || value === "C"; 
} 

function fn2(value: string): boolean { 
    return value === "A" || value === "B" || value === "C"; 
} 

function fn3(value): boolean { 
    return value === "A" || value === "B" || value === "C"; 
} 

が同じjsの関数にコンパイルされます:

function fnN(value) { 
    return value === "A" || value === "B" || value === "C"; 
} 

差がコンパイル時にある(と任意の通常のIDEで):

fn1("no good"); 

渡された文字列が定義した3つの特定の値のいずれでもないため、コンパイルエラーになりますただし、fn2fn3はその値で問題ありません。

関連する問題