は、私はこのようなスニペットを持って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. Scalaのパターンマッチングで労働組合の種類は
- 2. Typescriptの日付の種類は?
- 3. 2種類のシンクを組み合わせるには?
- 4. Typescriptでは、モジュールの種類は何ですか?
- 5. TypeScriptでは、Imageの種類は何ですか?
- 6. 連合の種類はflowtype
- 7. Typescriptのインデックスシグネチャの種類が異なる
- 8. Typescript反応の種類属性
- 9. Swift3:2種類のuint64タイプを組み合わせる
- 10. Tableau - 2種類の寸法値を組み合わせる
- 11. さまざまな種類の機能を組み合わせる(テキスト分類)
- 12. あいまいな種類の組成
- 13. 2 else文と2種類の$種類の場合
- 14. TypeScriptとAngular2で受信データの種類を検証する
- 15. typescriptで2種類の変数を宣言する方法
- 16. TypeScriptコンパイラのシンボルの種類を知るには?
- 17. 2種類のデータベースを結合する
- 18. (.net)デザインの種類の種類
- 19. Enumの種類Enumの種類
- 20. 種類は、「種類」タイプとのトラブルを有するタイプのラムダ
- 21. 種類は
- 22. archiveBaseNameは種類
- 23. サイトマップの種類は?
- 24. 依存メソッドの種類の競合が
- 25. 2種類のモナドの結合関数
- 26. 1つのTypescript関数パラメータ - オプションの種類?
- 27. typescriptにオブジェクトの種類を教えてください
- 28. TypeScriptインターフェイスのプロパティの種類を「抽出する」方法はありますか?
- 29. 種類
- 30. 種類
] |文字列 '' any'または 'any [] | 'に' obj'を定義する必要があります。文字列 ' – ranakrunal9