Встроенный синтаксис для нового объекта интерфейса в Typescript

#typescript

#typescript

Вопрос:

говорят, что вы можете создать объект, используя интерфейс, подобный этому: let o: ILookup = { id: 1, name: 'abc'}

Какой синтаксис для записи этого встроенного, например lookups.push(ILookup = { id: 1, name: 'abc'}) ?

Комментарии:

1. Если lookups имеет тип Array<ILookup> , то то, что вы просите, бессмысленно

Ответ №1:

Если компилятор не может определить тип на основе использования, вы можете сообщить компилятору, что вы на 100% уверены в своей правоте, и использовать утверждение типа. (https://www.typescriptlang.org/docs/handbook/basic-types.html#type-assertions )

 lookups.push({ id: 1, name: "abc" } as ILookup)
 

В то время как способ утверждения типа работает, TypeScript в большинстве случаев достаточно умен, чтобы понять, что вы перешли к lookup.push ILookup предположению lookups типа ILookup[] . В этом случае он решает, что { id: 1, name: "abc" } это вполне допустимый аргумент для функции.