打字稿类型定义属性

时间:2016-10-13 18:27:47

标签: javascript typescript typescript-typings

我有一个JavaScript对象,用于存储单词词典:

var Words = {}; 
Words.Account="Account";
Words.Account_Login="Account Login";

我的Typescript定义如下所示:

declare class Words {
    Account: string;
    Account_Login: string;
}

要在我的TypeScript中使用它,我必须使用" prototype"。我怎么能不用原型?

/// <reference path="../typings/words.d.ts" />
var abc = Words.prototype.Account_Login;

2 个答案:

答案 0 :(得分:1)

在您的示例中,您通过Words类访问Account_Login,就像它是一个静态变量一样。

如果你正在创建一个类Words,那么我希望你会使用它这样的东西:

var myWords = new Words();
var abc = myWords.Account_Login;

您可能需要定义如下所示的接口,而不是类定义:

declare interface IWords{
    Account: string;
    Account_Login: string;
}

然后使用您的Words对象确保您使用的是您定义的界面

var myWords = Words as IWords;
var abc = myWords.Account_Login;

答案 1 :(得分:1)

@ tj-rockefeller是正确的,我还发现如果我也只是将单词设为静态,我可以按预期使用它们。

var Words = {}; 
  static  Words.Account="Account";
  static  Words.Account_Login="Account Login";