Argument of type 'ComputedRef' is not assignable to parameter of type 'string'.
Аргумент типа 'ComputedRef' не может быть присвоен параметру типа 'string'.
const pErrorMinMessage = computed<string>(() => {
return 'world'
})
const fun1 = function (val: string) {
console.log('hello' + val)
}
fun1(pErrorMinMessage.value)
type AlbumType = {
id: number;
title: string;
};
enum ActionPoints {
SET_ALBUMS = "SET_ALBUMS",
ADD_ALBUM = "ADD_ALBUM",
REMOVE_ALBUM = "REMOVE_ALBUM"
}
type ActionType = {
type: ActionPoints.SET_ALBUMS;
payload: AlbumType[];
} | {
type: ActionPoints.ADD_ALBUM;
payload: AlbumType;
} | {
type: ActionPoints.REMOVE_ALBUM;
payload: number;
};
const reducer = (state: AlbumType[], action: ActionType) => {
switch (action.type) {
case ActionPoints.SET_ALBUMS:
return action.payload;
case ActionPoints.ADD_ALBUM:
return [...state, action.payload];
case ActionPoints.REMOVE_ALBUM:
return state.filter((album) => album.id !== action.payload);
default:
return state;
}
};
declare const JSON: {
id: number;
}[];
export default JSON;
einzigartig([1, 2, 3, 4, 5]) // [1, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5]
if(arr[i] !== arr1[j])
ведь и i и j пробегают все элементы массиваCOUNT()
- это агрегатная функция.!
- это булево отрицание. И он приводит свой аргумент к типу boolean. Автор не открыл Америку, и это используется. Но использовать нужно с умом.false
- это undefined
, null
, ''
(пустая строка), 0
, 0n
(bigint 0), NaN
.!!
- это всего лишь 2 идущих подряд оператора !
, это такое популярное сокращение для быстрого каста к boolean.!!!
, но это бессмысленно, так как тройное отрицание даст тоже самое что и одинарное. number | string | symbol
type MyFunc = <N extends string>() => (N extends string ? Field<N> : never)[];
но возвращаемый тип так же будет юнионом:({ name: "town" } | { name: "city" })[]
"town" | "city"
это тоже самое, что и тип "city" | "town"
.type MyFunc = <N extends string[]>() => {
[K in keyof N]: N[K] extends string ? Field<N[K]> : never;
};
myFunc<["town", "city"]>()
as const
, что так же делает его readonly массивом. Но принимать аргументы через readonly там где нам не нужно их мутирорвать - это вообще хорошая практика. Полный пример будет выглядеть так: