#angular #typescript #generics #typescript-generics
Вопрос:
Можно ли использовать тип параметра T в классе/интерфейсе в качестве имени свойства?
export interface ISamplelt;Tgt; { nameof(T) : T; lt;-- this property should have the name of the type T nameof(T) otherProperties: any; }
И используйте его вот так:
const data: ISamplelt;Housesgt;() = lt;something to construct the objectgt; console.log(data.houses)
Таково houses
свойство data
, которое было сгенерировано интерфейсом.
Ответ №1:
Машинопись-это система структурных типов. То есть система типов имеет дело со структурами, а не с именами, и типы могут не обязательно иметь имя, не говоря уже об уникальном.
Например, предположим, что вы должны были написать:
interface Person { name: string; } interface Street { name: string; }
является
ISamplelt;{name: string}gt;
предполагается, что у вас есть person
или есть street
собственность?
Так что нет, того, о чем вы просите, не существует.
Вы, вероятно, захотите объявить:
interface PersonSample { person: Person; } interface StreetSample { street: Street; }
или
interface Samplelt;Tgt; { sample: T; }