Я бы хотел определить класс, который может иметь любой ключ свойства string
, но с указанным c соответствующим типом значения. Я попробовал следующее:
interface MyValue {
body: string;
description: string;
}
interface MyInterface {
[key: string]: MyValue;
}
class MyClass implements MyInterface {}
Я надеялся, что приведенное выше приведет к MyClass
, где допустимо следующее:
class MyClass implements MyInterface {
a = {
body: "lorem ipsum";
description: "some latin placeholder",
};
}
... и следующее недопустимо :
class MyClass implements MyInterface {
a = "lorem ipsum";
}
Вместо этого я получаю сообщение об ошибке:
Class 'MyClass' incorrectly implements interface 'MyInterface'.
Index signature is missing in type 'MyClass'.
Есть ли способ использовать класс и при этом достичь желаемого поведения выше?
Спасибо!