Size: a a a

Angular - русскоговорящее сообщество

2021 April 27

OP

Oleg P in Angular - русскоговорящее сообщество
не уверен - почитаю сейчас об этои
источник

OP

Oleg P in Angular - русскоговорящее сообщество
а можно ссылочку - не нахожу такого что касается интерфейсов
источник

AI

Artsiom Ivanov in Angular - русскоговорящее сообщество
источник

OP

Oleg P in Angular - русскоговорящее сообщество
неа - что-то не то... тут речь об  interface | interface
источник

AI

Artsiom Ivanov in Angular - русскоговорящее сообщество
Есть интерфейс для type select и для всего остального, в итоге берём их юнион, не?
источник

o

overstar in Angular - русскоговорящее сообщество
Подскажите как правильно задать класс css из двух частей?
Есть 2 переменные с1=1111 и с2=2222
Могу в шаблоне получить либо один класс либо другой вот так: class="с1", а что написать в шаблоне чтобы в результате в хтмл получить 1111-2222
?
источник

OP

Oleg P in Angular - русскоговорящее сообщество
В интерфейсе есть поле type: string. В зависимости от значения поля нужно чтобы в интерфейсы были другие поля. Что-то вроде этого:

type Type = Type1 | Type2 | Type3;
interface A {
  type: Type;

  name?: string;  —> эти поля только если type == Type1
 age?: number; —> эти поля только если type == Type1

  adddress?: string;  —> эти поля только если type == Type2
 postcode?: string; —> эти поля только если type == Type2
 
}
источник

AI

Artsiom Ivanov in Angular - русскоговорящее сообщество
Можно ли описать interface A для каждого type отдельно а потом сделать юнион?
источник

OP

Oleg P in Angular - русскоговорящее сообщество
так:

interface A {
  type: Type;
  name: string;
 age: number;
}

interface B {
  type: Type;
  address: string;
 postcode: string;
}

interface Common extends A, B {
}

?
источник

AI

Artsiom Ivanov in Angular - русскоговорящее сообщество
interface A {
  type: Type1; // !
  name: string;
 age: number;
}

interface B {
  type: Type2; // !
  address: string;
 postcode: string;
}

type Common = A | B
источник

MK

Maxim Koylo in Angular - русскоговорящее сообщество
забыл сказать спасибо)
источник

OP

Oleg P in Angular - русскоговорящее сообщество
принцип понял. Не совсем подходит - плодить интерфейсы - так как типов много. Но идея понятная
источник

AI

Artsiom Ivanov in Angular - русскоговорящее сообщество
У всех type разные наборы полей? Тогда ок плодить интерфейсы

Есть группы полей с разными type и одинаковыми наборами полей? опять юнион -  type: Type1 | Type2

Хз, опиши ситуацию - подумаем над conditional types + mapped types
источник

OP

Oleg P in Angular - русскоговорящее сообщество
ок спасибо - обдумаю еще сам - потом напишу
источник

AI

Artsiom Ivanov in Angular - русскоговорящее сообщество
источник

o

overstar in Angular - русскоговорящее сообщество
Ага, но чет не нашел ответа (ну не разобрался наверное)
источник

o

overstar in Angular - русскоговорящее сообщество
class= "{{c1}}-{{c2}}"
только до такой штуки додумался, но что-то не знаю
источник

И

Илья in Angular - русскоговорящее сообщество
[ngClass]="c1 + '-' + c2"
источник

o

overstar in Angular - русскоговорящее сообщество
Гуд!
источник

D

Dmitry in Angular - русскоговорящее сообщество
зацени, сделал одну функцию. не в один поток конечно, но по идее должно работать. просто функцию вызываешь и внутри вся магия

https://codesandbox.io/s/quirky-river-crtho?file=/src/index.ts
источник