1
keyof
을 사용하여 기존 JS 라이브러리에서 유형 안전을 강화하려고 했으므로 (어떤 함수 호출도 재정의 할 수 없음). 이 클래스는과 같이, get
및 set
기능과 데이터 구조를, 랩 :Typescript keyof - 선언에서 값을 사용하는 방법?
declare class Component<T> {
set(data: T);
get(key: keyof T);
}
를 지금까지 너무 좋아! 하지만 지금은 옵서버를 추가하고 싶습니다. get
에서 사용하는 것과 동일한 keyof
기능을 사용하고 싶습니다. 두 번째 매개 변수는 제공된 키의 새 값과 이전 값이 지정된 콜백입니다. 가 이름 '키'를 찾을 수 없습니다
이 있습니까
말,type Callback<T, K extends keyof T> = (newValue: T[K], oldValue: T[K]) => void; declare class Component<T> { observe(key: keyof T, cb: Callback<T, key>) }
그러나 타이프는
observe
기능에key
내 사용을 거부 : 그래서처럼 만드는 시도했습니다 지금이 한계를 극복하는 방법은 없습니까? 나는이 작업을 수행 할 수 있습니다observe<K extends keyof T>(key: keyof T, cb: Callback<T,K>)
을하고 그것을 잘 작동하지만 내 실제 코드는 의미 단지 이상한 보이는
thing.observe<"key">("key", (newValue, oldValue) => {})
합니다.
그것은했다! 정말 놀라워요. 고마워요. – Alastair
좋습니다! 다행 당신을 도와 줄 :) – Diullei