は、私はこのようなスニペットを持ってtypeguardsここのコンセプトを理解する。誰でもどうぞ?typescriptです組合の種類は
0
A
答えて
0
ファンクションtest()
ファンクションtest()
ファンクションtest()
は、変数によって宣言された「より広い」タイプを返します。これまでのところ、typescriptは、関数が常に配列インスタンスを返すことを確認できません。あなたが実際にあなたが言及しているtypeguardsを使用する必要があります問題、型ガード付き例えば
function test(): any[] | string
{
return [1, 2];
}
let val = test();
if (val instanceof Array)
{//no error here
let obj: any[] = val;
}
0
を修正するには、活字体は、労働組合の種類を絞り込むことができます。あなたは、単に絞り込み条件を使用していますが、型ガード機能を追加すると、あなたに追加の再利用性と柔軟性を与えることができます。
function isAnyArray(value: any[] | string): value is any[] {
return value instanceof any[];
}
ですから、定期的に自分の割り当てを行い、その後、あなたのタイプのガードが提供する範囲で動作することができます:
let obj: string | any[] = test();
if (isAnyArray(obj)) {
//Use obj here as if it were an any[]
}
あなたが複数の場所であなたの組合を使用しているので、あなたはそれのためのタイプを定義することができますし、手動union型の代わりにそれを使用する:あなたはタイプの `test``任意の[が定義されているよう
type StringOrAnyArray = string | any[];
//...
function isAnyArray(value: StringOrAnyArray): value is any[] {
return value instanceof any[];
}
//...
let obj: StringOrAnyArray = test();
if (isAnyArray(obj)) {
//Use obj here as if it were an any[]
}
関連する問題
- 1. Typescriptでは、モジュールの種類は何ですか?
- 2. TypeScriptでは、Imageの種類は何ですか?
- 3. Typescriptのインデックスシグネチャの種類が異なる
- 4. 連合の種類はflowtype
- 5. Swift3:2種類のuint64タイプを組み合わせる
- 6. さまざまな種類の機能を組み合わせる(テキスト分類)
- 7. あいまいな種類の組成
- 8. 2 else文と2種類の$種類の場合
- 9. 2種類のデータベースを結合する
- 10. Enumの種類Enumの種類
- 11. (.net)デザインの種類の種類
- 12. archiveBaseNameは種類
- 13. 種類は、「種類」タイプとのトラブルを有するタイプのラムダ
- 14. サイトマップの種類は?
- 15. typescriptにオブジェクトの種類を教えてください
- 16. 依存メソッドの種類の競合が
- 17. TypeScriptインターフェイスのプロパティの種類を「抽出する」方法はありますか?
- 18. 種類
- 19. 種類
- 20. 種類
- 21. 種類
- 22. 種類の降格(種類プロモーションとは対照的に)
- 23. アップロードファイルの種類
- 24. ワードプレスイベントの種類
- 25. マイクロデータの種類インデックスページとダブルコンテンツのニュース記事組織
- 26. 「子供」の種類は何ですか?
- 27. スタックは1種類のキューです
- 28. ServiceBroker - メッセージの種類は何ですか?
- 29. Haxeのクラスの種類は?
- 30. は、特定の種類
] |文字列 '' any'または 'any [] | 'に' obj'を定義する必要があります。文字列 ' – ranakrunal9