1. ホーム
  2. typescript

[解決済み] タイプスクリプトのパイプ(|)の意味とは?

2022-10-02 23:32:53

質問

のタイプスクリプトのコードを見ているときに @ng-bootstrap というパイプ( | ) 演算子を見つけました。

export declare const NGB_PRECOMPILE: (typeof NgbAlert | typeof NgbTooltipWindow)[];

pipe()の使い方は? | ) 演算子はどのように使うのですか?

どのように解決するのですか?

これは 組合型 と呼ばれる。

ユニオン型は、複数の型のいずれかになりうる値を記述する。

パイプ( | ) は、それぞれのタイプを区切るのに使われるので、例えば number | string | boolean は値の型として number , a string または boolean .

let something: number | string | boolean;

something = 1; // ok
something = '1'; // ok
something = true; // ok
something = {}; // Error: Type '{}' is not assignable to type 'string | number | boolean'

遊び場


そして、質問にあるような例です。

class Test1 {
    public a: string
}

class Test2 {
    public b: string
}

class Test3 {
}

let x: (typeof Test1 | typeof Test2)[];

x = [Test1]; //ok
x = [Test1, Test2]; //ok
x = [Test3]; //compilation error

x のコンストラクタを含む配列です。 Test1 または Test2 .