음악, 삶, 개발
Typescript 에서 Exclude 를 통해 property 제외하기 본문
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 할수있다.