2013-01-14 6 views
1

Date 개체 대신으로 Datejs를 사용하도록 TypeScript에 어떻게 알 립니까?TypeScript에서 Datejs 사용

js 파일에 대한 참조를 추가하고 날짜를 any (declare var Date: any;) 유형으로 선언하려고 시도했지만 오류 수정에 아무런 영향이 없었습니다.

편집 : 나는 this 질문을 찾았지만 포함하는 방법을 지정에 대해 이야기합니다. 나는 열린 상태로두고 가능한 단순히 날짜에 대한 유형 검사를 해제 할 수 있는지 궁금합니다.

답변

5

기존 변수를 유형 (이 경우 Date)으로 가져 와서 any으로 바꾸는 방법이 없습니다.

가장 좋은 방법은인터페이스를 datejs의 새로운 메소드로 확장하는 것입니다. 바라건대 어떤 시점에서 누군가가 이것을 수행하여 DefinitelyTyped에 업로드 할 수 있기를 바랍니다. 당신이 할 수

두 가지 해결 방법은 :

var Date2 = <any>Date; 
// Use Date2 anywhere you would use Date 

다른 해결 방법은 anyDate을 선언 lib.d.ts을 수정하는 것입니다. 분명히 이것은 모든 곳에서 부작용을 갖지만 작동 할 것입니다.

+0

흠,'Date2' 메서드를 사용해 보겠습니다. 나는 시작하기 위해 필요한 메소드만을위한 인터페이스 선언을 작성하려고 시도했지만, 나는 틀린 것을하고있다. 인터페이스 선언이 어떻게 생겼는지 알 수 있습니까? – Jared

+0

Visual Studio에서 lib.d.ts에 선언 된 항목의 확장이 제대로 작동하지 않는 경우가 있습니다. 인터페이스는 일반 인터페이스 선언처럼 보일 것입니다. –

+0

'Date' 또는 간단히'interface Date {}'를 확장해야합니까? 또한'var Date2'는 매우 잘 작동했습니다. 예 : – Jared

7

하는 네이티브 날짜를 확장을 시작하기 위해서는 다음과 같을 것이다 :

interface DateIs { 
    monday(): bool; 
    // ctd... 
    january(): bool; 
    // ctd... 
    weekday(): bool; 
} 

interface DateAdd { 
    days(): Date; 
    months(): Date; 
    // ctd... 
} 

interface Date { 
    parse(date: string): Date; 
    today(): Date; 
    next(): Date; 
    last(): Date; 
    monday(): Date; 
    // ctd... 
    january(): Date; 
    // ctd... 
    addDays(days: number): Date; 
    addMonths(months: number): Date; 
    add(quantity: number): DateAdd; 
    is(): DateIs; 
} 

이 예제를 사용하면 사용하는 기능을 계속 추가 할 수있다, 나는 예를 들어 한 달 뒀다 그래서 당신은 february()와 짧은 jan() 변형을 채울 수 있습니다.

1

유형의 파일에 대한 참조를 추가

http://www.nuget.org/packages/datejs.TypeScript.DefinitelyTyped/

nuget

에서 'datejs.typescript.definitelytyped'패키지를 설치합니다. 전역 스크립트 파일에서 전역 변수를 선언하거나 클래스에서 개인 정적 멤버 변수 또는 단순히 로컬 변수를 선언하고 아래 코드와 같이 할당합니다.

/// <reference path="typings/datejs/datejs.d.ts" /> 
var DateJs: IDateJSStatic = <any>Date; 

현재 SPA 응용 프로그램을 작성 중이므로 코드 예제와 같이 전역 변수를 사용합니다.