2017-03-13 18 views
0
function doSomething(a : any) { 
    let b = (a as Array<any>) 
    alert(typeof b) // gives "string" 
} 

doSomething("Hello") 

アラートには「文字列」が表示されます。私が期待したのは、nullのようなものでした。 asオペレータに関する多くの文書は見つかりませんでした。たぶんthisは "公式"です。TypeScript型の文字列を演算子としてキャスト

ここにはa related quetionです。

自分でもbのタイプを確認する必要がありますか?

答えて

2

as演算子とその他のアサーション構文<T>exprは、構文とは別に同じです。実行時の動作もまったく発生しません。

+0

ランタイムエラーが発生する可能性があるので注意が必要です。私はコンパイルされたコードを読んだことがあります。なぜコンパイラはキャストが失敗するかもしれないと不平を言っていないのですか? (実際には失敗することはありませんが) – LShi

+0

あなたはそのタイプが 'any'であると言いました。成功することが保証されているキャストはありません。 –

+0

それは私の...失敗です。私はSwiftの 'が好きならば?タイプ{...} '。ありがとう! – LShi

関連する問題