Как бы вы достигли чего-то подобного в TypeScript?Наследование интерфейса, заданного как общий аргумент
interface Clonable<TAttributes> extends TAttributes { // ERROR: TAttributes is not an interface
clone(): TAttributes
copyFrom(input: TAttributes)
}
function(x : Clonable<{title:string,url:string}>) {
alert(x.title) // ERROR: title is not an property of x
}
Справочная информация: Я пытаюсь использовать TypeScript + Mithril + JSX. Чтобы мои атрибуты отображались при автозавершении, мне нужны атрибуты свойств с типами моих атрибутов; но я также хочу, чтобы мой класс имел эти атрибуты напрямую, потому что это намного короче, чтобы написать «this.title», чем «this.attributes.title».
Любой вариант здесь?
Это не очень понятно, что вы просите. Вы спрашиваете о том, как его реализовать или как «набрать его»? (или оба..). Что это за безымянная функция? Что он должен делать? –
Этот код недействителен. Вот две ошибки, которые он дает: - «Интерфейс может расширять только класс или другой интерфейс». at: '1,41' - 'Свойство' title 'не существует в типе' Clonable <{title: string; url: string; }> '' at: '7, 13' Я ищу альтернативный способ достижения этого, который сработает. – FremyCompany
Очевидно, но что у вас есть? Реализованы ли «clone» и «cloneFrom»? Как бы вы это использовали? Пожалуйста, объясните, что у вас есть, и что вы хотите с ним делать. –