https://caniuse.com/ quicktype.com
const number = 1; let n: number = 2;
let a = 'hola'; let aaaaa = null; let b : undefined = undefined
function saludar(name:string){ console.log("Hola: ", name) }
saludar("pepe");
function saludarObjectWRONG({name: nombre, age: edad}){
console.log(Hola ${name}, como estas. Edad ${edad}
);
}
function saludarObjectOK1({name, age} : {name:string, age:number}){
console.log(Hola ${name}, como estas. Edad ${age}
);
}
saludarObjectOK1({name:"pepe", age:33})
Lo malo es que hay que hacer una desectructuracion dentro de la funcion para poder obtener los valores.
function saludarObjectOK2(persona : {name:string, age:number}){
const {name,age} = persona;
console.log(Hola ${name}, como estas. Edad ${age}
);
}
const persona = {name:"pepe", age:66} saludarObjectOK2(persona);
const sayHiFromFunction = (fn: Function) => { fn('Jonny') }
sayHiFromFunction((name:string) => {
console.log(Hola ${name}
);
})
sayHiFromFunction(() => { return Math.random() });
const sayHiFromFunction2 = (fn: (name:string) => void) => { fn('Miguel') }
const sumar = (a:number, b:number): number => { return a + b; }
const restar: (a:number,b:number) => number = (a,b) => { return a-b }
function throwError(message: string): never{ throw new Error(message); }
const avengers = ['spiderman', 'hulk']
avengers.forEach(function (avenger) { console.log(avenger.toLocaleLowerCase()) });
let hero = { name: 'thor', age: 666 };
function createHero(name:string,age:number){ return { name, age } }
const thor = createHero('Thor',1566)
type Hero = { readonly id:HeroId, name:string, age:number, isActive? : boolean }
type HeroBasicInfo = { readonly id:HeroId, name:string, age:number }
type HeroProperties = { readonly }
function createHeroWithType (name:string,age:number): Hero{ return { id: crypto.randomUUID(),name, age } }
function createHeroWithObject(input: HeroBasicInfo): Hero { const {name,age,id} = input return {id, name, age, isActive: true} }
type HeroId = ${string}-${string}-${string}-${string}-${string}
type HexadecimalColor = #${string}
const color2: HexadecimalColor = '#ffffff';
type HeroPowerScale = 'local' | 'planetary' | 'galactic' let ann : number | string
function createAddress() { return { planet: 'Tierra', city: 'Barcelona' } } type Address = ReturnType
const lenguages: string[] = []
lenguages.push('Javascript') lenguages.push('Javascript')
const lenguagessPluss: (string|number)[] = []
lenguagessPluss.push('texto puro') lenguagessPluss.push(666)
type CellValue = 'X' | 'O' | ''
type GameBoard = [ [CellValue, CellValue, CellValue], [CellValue, CellValue, CellValue], [CellValue, CellValue, CellValue] ] const gameBoard: GameBoard = [ ['X', 'O' , 'O'], ['O', 'X' , ''], ['', 'O' , 'X'] ]