1

你会如何告诉 TypeScript 使用 DatejsDate而不是内置Date对象?

我尝试添加对 js 文件的引用并将 Date 声明为anyie类型declare var Date: any;,但这并没有解决错误。

编辑: 我发现了这个问题,但它谈到了指定要包含的方法。我想知道是否可以让它保持开放式并简单地关闭 Date 的类型检查;

4

3 回答 3

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() 变体!

于 2013-01-14T22:46:24.170 回答
6

没有办法使用类型(Date在这种情况下)将现有变量转换为any.

最好的选择是Date使用 datejs 的新方法扩展接口。希望在某个时候有人会这样做并将其上传到DefinedTyped

您可以采取两种解决方法:

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

另一种解决方法是仅修改lib.d.ts为声明Dateany. 显然,这会在任何地方产生副作用,但会起作用。

于 2013-01-14T22:07:59.240 回答
1

从 nuget 安装包 'datejs.typescript.definitelytyped'

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

添加对类型文件的引用。在全局脚本文件中声明一个全局变量,或者在一个类中声明一个私有静态成员变量或只是一个局部变量,分配如下面的代码所示。

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

我目前正在编写 SPA 应用程序,因此我使用了代码示例中所示的全局变量。

于 2014-10-16T14:03:40.510 回答