2012-12-17 3 views
2

현재 프로젝트를 TypeScript로 마이그레이션하려고합니다. 내가 찾은 this 정의 파일의 큰 세트와 나는 현재 하나의 실험을하고있다 Knockout.KnockoutObservableArray가 TypeScript의 입력 요소가 있습니다.

나는 정의 파일이 observableArray KnockoutObservableArray에 대한 유형을 가지고 있고 또한 MyType[]과 같은 형식화 된 배열을 정의 할 수 있음을 알고 있습니다.

어떻게 든이 두 가지를 결합 할 수 있는지 알고 싶습니다. 요소가 MyType이어야하는 KnockoutObservableArray을 만들고 싶습니다.

미리 감사드립니다.

+0

@JcFx 나는 동의하지 않는다. 그 질문은 내 대답이 아니다. – thomaux

+1

내 실수, 네 말이 맞아. 나는 너무 빨리 보았다. – JcFx

답변

4

TypeScript 용 로드맵에는 제네릭이 포함되어 있습니다. 제네릭은 원하는 것을 만들기 위해 필요한 것이라고 생각합니다. 다음 코드는 실제는 아니며 TypeScript 팀이 제네릭을 구현하는 방법조차되지 않을 수도 있지만 구현 방법에 대한 느낌을줍니다. 나는 또한 관찰 등을 만드는 방법에 대한 구현 세부 탈락 한 :

class KnockoutObservableArray <T> { 
    constructor(public Items: T[]) { 
    } 
} 

var observableString = new KnockoutObservableArray<string>(['foo', 'bar']); 

을하지만 언급 한 바와 같이 당신이 동적으로 만들해야합니다 지금은, 그래서, 제네릭은 아직, 타이프 라이터에 포함되지 않습니다!

var observableString: any; 
+2

"Generics는 최종 언어에 포함될 것입니다"... 토론 : https://typescript.codeplex.com/discussions/397702 언어 사양 : http://www.typescriptlang.org/Content/TypeScript%20Language% 20Specification.pdf (18 페이지) – Fenton

+0

젠장, 그게 너무 나쁘군요. 답변과 링크에 감사드립니다. Knockout에 대한 타입 정의 파일을 사용하면 KnockoutObservableString, KnockoutObservableBool 등의 입력 된 관찰 가능 객체로 특정 속성을 지정할 수 있습니다. KnockoutObservableArray도 있지만, 포함 할 요소의 유형을 정의 할 수는 없다고 생각합니다. . 나는 며칠 안에 당신의 대답을 받아 들일 것입니다. 아마도 다른 시각이 목소리를 낼 것입니다. – thomaux

관련 문제