@asanglay V extends 'board' ?TBoard.IBoardPersonal : TTask.ITask[] - и вот это условие тебе нужно разбить на две сигнатуры.
Для наглядности: type Test<T = boolean> = T extends false ? true : false type Result = Test
Записи? Если ты про Record, то он не влияет никак в данном случае.
type NRange<T extends number, U extends any[] = []> = U['length'] extends T ? U : NRange<T, [...U, 0]> type Flatten<T, U extends any[] = []> = T extends [] ? U : T ex...
Так чем это не подходит?)) Автор даже не отвечал после этого ничего.
T extends U ? true : false
Типо такого: type OnlyOne<T extends object> = { [K in keyof T]: Partial<Omit<Record<keyof T, never>, K>> & Record<K, T[K]> }[keyof T] type Foo = { one?: string } & (OnlyOne...
Тебе нужно чтобы там остался только объект?
Всем привет. Помогите пожалуйста разобраться. Смысл в том, что я хочу указать два разных типа для одной и той функции, в зависимости от первого аргумента (туда приходит значен...
А что это { todos: never[] } ?
А зачем тебе там пустой массив в поле senders?)
А цель какая? Зачем лишние поля вычищать?
Требовать полного соответствия A = B?
С чего должна то?)
const execute = <T extends Partial<Test>>(arg1?: T) => { return (arg2: T extends Test ? Omit<Test, keyof T> | void : Omit<Test, keyof T>) => {} }
Ну есть баг - я не спорю, то что при сужении -> расширении затирается информация о типе и подменяется другим - это проблема?
А Typescript является soundless (надёжной) системой типов?)
Хочешь чтобы заставило перечислить все ключи из интерфейса и не было дуближей? Это можно.
slides?: Extract<WebOptions<any>['slides'], Record<string, unknown>>
Не проще ли заиспользовать https://www.npmjs.com/package/qs?