Naujas typas kito typo pagrindu
type Point = {x: number, y:number}
type P = keyof Point
Funkcijos grazinamo objecto typas iš funcijos
function MyF() {
return {a:1}
}
type K = ReturnType<typeof MyF>
razultate:
K tipas {a: number}
jeigu strėlinė funkcija, tai nereikia konvertuoti funkcijos
function MyFType = () => {
return {a:number}
}
type K = ReturnType<MyFType >
Jeigu norime gauti typa masyvo elemento
const MyArray = [
{name: 'MyName', age: 30}
]
type Person = typeof MyArray[number]
type Age = typeof MyArray[number]['age']
type MessageOf<T> = T extends {message: unknown} ? T['message'] : never
tikriname ar T (generic) extendina nurodyta salyga, jeigu taip tai imame T['message'], jeigu ne - never
interface Email {
message: string
}
interface Cat {
sound: string
}
type EmailMessageContent = MessageOf<Email> -> string
type CatMessageContent = MessageOf<Cat> -> never
interface Test {
[key: string]: number
}
kai neribotas kiekis elementu
type OptionFlags<Type> = {
[Property in keyof Type]: boolean
}
naujas type ims elementų key iš Type ir tures boolean reikšmes