음악, 삶, 개발

Typescript 에서 Exclude 를 통해 property 제외하기 본문

개발 Web/TypeScript

Typescript 에서 Exclude 를 통해 property 제외하기

Lee_____ 2022. 3. 14. 02:58

const enum 을 자주 사용하는데, 이 const enum type 에서 몇몇의 property 를 제외한

새로운 type 을 Exclude 를 통해 만들어낼수있다.

const enum Foo {

    ONE, TWO, THREE

}

type Hoo = Exclude<Foo, Foo.ONE | Foo.TWO>

const hooA: Hoo = Foo.ONE   // error
const hooB: Hoo = Foo.THREE // ok

이 Exclude 를 실전에서 사용하게된 이유는,

디바이스의 파라미터들이 있었는데, parameter lock 기능을 제공하기위해 특정 parameter 들은 제외되어야했기때문이다.

color 같은 경우는 굳이 lock 기능이 필요없는 파라미터였다.

따라서, 아래와 같이 작성이 되었다.

const enum ParameterName {

    ACTIVE, COLOR, RATE

}

type LockableParameterName = Exclude <ParameterName, ParameterName.ACTIVE | ParameterName.COLOR >

const lockableParamName: LockableParameterName = ParameterName.ACTIVE // error

"|" 기호를 사용하면, 여러개를 exclude 할수있다.