Индексатор TypeScript для статического класса - PullRequest
0 голосов
/ 10 мая 2019

По сути, я пытаюсь получить значение из статического класса.Вот так:

export enum Test {
    A = 10,
    B = 20,
    C = 30

}

export class TestObject
{
    constructor(public ValueA: string, public ValueB: Date){}
}

export class TestValues {
    [key: number] : TestObject;
    public static 10: TestObject = new TestObject ('AAA', new Date());
    public static 20: TestObject = new TestObject ('BBB', new Date());
    public static 30: TestObject = new TestObject ('CCC', new Date());
}

var a = Test.A as number;
var result = TestValues[a];

Это вернет ошибку:

Element implicitly has an 'any' type because
type 'typeof TestValues' has no index signature.

См. Машинопись на площадке ЗДЕСЬ

1 Ответ

0 голосов
/ 10 мая 2019

ОК, поэтому я исправил это, больше не экспортируя статический класс.Я сделал это нормальным классом, который я создаю и экспортирую как константу.

ОТВЕТ:

export enum Test {
    A = 10,
    B = 20,
    C = 30

}

export class TestObject
{
    constructor(public ValueA: string, public ValueB: Date){}
}

class TestValuesDefinition {
    [key: number] : TestObject;
    public 10: TestObject = new TestObject ('AAA', new Date());
    public 20: TestObject = new TestObject ('BBB', new Date());
    public 30: TestObject = new TestObject ('CCC', new Date());
}

export const TestValues = new TestValuesDefinition();

// And than in the other file
var a = Test.A;
var result = TestValues[a];
...