2014-10-27 109 views
4

我想聲明一個名爲Date的類,該類具有Date類型的屬性(如在JavaScript Date object的TypeScript接口中,但編譯器假定我的屬性的類型與我如何區分兩者?與接口名稱相同的TypeScript類

如果Date接口在模塊中,我可以使用模塊名來區分,但它似乎在全局命名空間中。我的Date類是在一個模塊內

回答

4

我相信沒有特殊的關鍵字來訪問全局命名空間,但下面的作品:

// Create alias (reference) to the global Date object 
var OriginalDate = Date; 

// Make copy of global Date interface 
interface OriginalDate extends Date {} 

module Foo { 
    export class Date { 
     public d: OriginalDate; // <-- use alias of interface here 
     constructor() { 
      this.d = new OriginalDate(2014, 1, 1); // <-- and reference to object here 
     } 
    } 
} 

var bar = new Foo.Date(); 
alert(bar.d.getFullYear().toString()); 

參見:https://github.com/Microsoft/TypeScript/blob/master/src/lib/core.d.ts

在過去,我一直叫這樣的類「日期時間」來避免這個問題(和可能的混淆)。

+0

你確定這家公司有效嗎?在我的TypeScript中,我無法在名稱空間名稱和我的類之間區分這種情況。 ps。該鏈接不起作用 – Devid 2017-02-09 10:27:42

相關問題