From 01926387e9e641b29d27ec3e2e61d662fee45329 Mon Sep 17 00:00:00 2001 From: Helaine Ribeiro Date: Fri, 27 May 2022 19:50:53 -0300 Subject: [PATCH 1/2] instalando arquivos json --- lista-typescript/.gitignore | 1 + lista-typescript/package-lock.json | 35 ++++++++++++++++++++++++++++++ lista-typescript/package.json | 16 ++++++++++++++ lista-typescript/tsconfig.json | 11 ++++++++++ 4 files changed, 63 insertions(+) create mode 100644 lista-typescript/.gitignore create mode 100644 lista-typescript/package-lock.json create mode 100644 lista-typescript/package.json create mode 100644 lista-typescript/tsconfig.json diff --git a/lista-typescript/.gitignore b/lista-typescript/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/lista-typescript/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/lista-typescript/package-lock.json b/lista-typescript/package-lock.json new file mode 100644 index 0000000..77d8f86 --- /dev/null +++ b/lista-typescript/package-lock.json @@ -0,0 +1,35 @@ +{ + "name": "lista-typescript", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "lista-typescript", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "typescript": "^4.7.2" + } + }, + "node_modules/typescript": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + } + }, + "dependencies": { + "typescript": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==" + } + } +} diff --git a/lista-typescript/package.json b/lista-typescript/package.json new file mode 100644 index 0000000..23a6d81 --- /dev/null +++ b/lista-typescript/package.json @@ -0,0 +1,16 @@ +{ + "name": "lista-typescript", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "tsc && node ./build/index.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "typescript": "^4.7.2" + } +} diff --git a/lista-typescript/tsconfig.json b/lista-typescript/tsconfig.json new file mode 100644 index 0000000..553fee6 --- /dev/null +++ b/lista-typescript/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6", /* Specify ECMAScript target version */ + "module": "commonjs", /* Specify module code generation */ + "sourceMap": true, /* Generates corresponding '.map' file. */ + "outDir": "./build", /* Redirect output structure to the directory. */ + "rootDir": "./src", /* Specify the root directory of input files. */ + "removeComments": true, /* Do not emit comments to output. */ + "noImplicitAny": true /* Raise error on declarations with an implied 'any' type. */ + } + } \ No newline at end of file From 6831659485236048c02d672b773a3691549435f6 Mon Sep 17 00:00:00 2001 From: Helaine Ribeiro Date: Sat, 28 May 2022 19:32:52 -0300 Subject: [PATCH 2/2] =?UTF-8?q?resolu=C3=A7=C3=A3o=20de=20exerc=C3=ADcios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lista-typescript/package.json | 9 ++++- lista-typescript/src/exercicio1.ts | 17 ++++++++ lista-typescript/src/exercicio2.ts | 7 ++++ lista-typescript/src/exercicio3.ts | 47 ++++++++++++++++++++++ lista-typescript/src/exercicio4.ts | 57 +++++++++++++++++++++++++++ lista-typescript/src/exercicio5.ts | 35 +++++++++++++++++ lista-typescript/src/exercicio6.ts | 62 ++++++++++++++++++++++++++++++ lista-typescript/src/exercicio7.ts | 0 8 files changed, 233 insertions(+), 1 deletion(-) create mode 100644 lista-typescript/src/exercicio1.ts create mode 100644 lista-typescript/src/exercicio2.ts create mode 100644 lista-typescript/src/exercicio3.ts create mode 100644 lista-typescript/src/exercicio4.ts create mode 100644 lista-typescript/src/exercicio5.ts create mode 100644 lista-typescript/src/exercicio6.ts create mode 100644 lista-typescript/src/exercicio7.ts diff --git a/lista-typescript/package.json b/lista-typescript/package.json index 23a6d81..3d00e10 100644 --- a/lista-typescript/package.json +++ b/lista-typescript/package.json @@ -5,7 +5,14 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "start": "tsc && node ./build/index.js" + "start": "tsc && node ./build/index.js", + "exer1": "tsc && node ./build/exercicio1.js", + "exer2": "tsc && node ./build/exercicio2.js", + "exer3": "tsc && node ./build/exercicio3.js", + "exer4": "tsc && node ./build/exercicio4.js", + "exer5": "tsc && node ./build/exercicio5.js", + "exer6": "tsc && node ./build/exercicio6.js", + "exer7": "tsc && node ./build/exercicio7.js" }, "keywords": [], "author": "", diff --git a/lista-typescript/src/exercicio1.ts b/lista-typescript/src/exercicio1.ts new file mode 100644 index 0000000..d1a1eae --- /dev/null +++ b/lista-typescript/src/exercicio1.ts @@ -0,0 +1,17 @@ +/*- Exercício 1 + + Crie um função que receba uma `string` com o nome e outra `string` com uma data de nascimento (ex.: “24/04/1993”). + A função deve separar o dia, o mês e ano e retornar uma `string` no seguinte formato: + "Olá me chamo {NOME}, nasci no dia {DIA} do mês de {MÊS} do ano de {ANO}" */ + + function recebeString(nome:string,dataNacismento:string): string{ + + const separador:string[]= dataNacismento.split("/") + + return `Olá me chamo ${nome}, nasci no dia ${separador[0]} do mês de ${separador[1]} do ano de ${separador[2]}` + + } + + console.log(recebeString("Heloine","12/02/1984")) + + \ No newline at end of file diff --git a/lista-typescript/src/exercicio2.ts b/lista-typescript/src/exercicio2.ts new file mode 100644 index 0000000..687c03d --- /dev/null +++ b/lista-typescript/src/exercicio2.ts @@ -0,0 +1,7 @@ +/* Crie uma função que receba um parâmetro qualquer e que imprima no console o tipo da variável. */ + +function test(num = "1") { + console.log(typeof num); + } + + test(); \ No newline at end of file diff --git a/lista-typescript/src/exercicio3.ts b/lista-typescript/src/exercicio3.ts new file mode 100644 index 0000000..788f2cb --- /dev/null +++ b/lista-typescript/src/exercicio3.ts @@ -0,0 +1,47 @@ +/* Você foi contratado por um serviço de streaming para organizar o sistema de catálogos de filmes. +Cada filme possui 3 informações essenciais: 1. nome do filme; 2. ano de lançamento e 3. gênero do filme. +Os gêneros da plataforma se limitam aqueles encontrados no seguinte `ENUM` de gêneros: + +enum GENERO { + ACAO="ação", + DRAMA="drama", + COMEDIA="comédia", + ROMANCE="romance", + TERROR="terror" +} + +Além dessas informações presentes em todos os filmes, alguns deles possuem uma informação opcional: 4. pontuação em site de resenha (ex. Metacritic, RotenTomatoes). + +Considerando todas estas informações, crie uma função que receba todas essas informações como parâmetros( 3 essenciais + 1 opcional) e +retorne todas informações organizadas em um `type` + +- **Entradas/Saídas** + + input: string, number, ENUM, number(opcional) + output: type + ``` */ + enum GENERO{ + ACAO="ação", + DRAMA="drama", + COMEDIA="comédia", + ROMANCE="romance", + TERROR="terror" + } + + type informacoes={ + nomeDoFilme: string, + anoDeLançamento: number , + genero: GENERO, + pontuacao?: string + + } + + function filmes(nomeDoFilme:string,anoDeLançamento:number,genero:GENERO,pontuacao?:number){ + + + + return {nomeDoFilme,anoDeLançamento,genero,pontuacao} +} + + console.log(filmes("Duna", 2021, GENERO.ACAO, 80)) + console.log(filmes("Duna", 2021, GENERO.ACAO)) \ No newline at end of file diff --git a/lista-typescript/src/exercicio4.ts b/lista-typescript/src/exercicio4.ts new file mode 100644 index 0000000..882c5bf --- /dev/null +++ b/lista-typescript/src/exercicio4.ts @@ -0,0 +1,57 @@ +/* O seguinte `array` traz as pessoas colaboradoras de uma empresa, com seus salários, setores e se trabalham presencialmente ou por home office: + +[ + { nome: "Marcos", salário: 2500, setor: "marketing", presencial: true }, + { nome: "Maria" ,salário: 1500, setor: "vendas", presencial: false}, + { nome: "Salete" ,salário: 2200, setor: "financeiro", presencial: true}, + { nome: "João" ,salário: 2800, setor: "marketing", presencial: false}, + { nome: "Josué" ,salário: 5500, setor: "financeiro", presencial: true}, + { nome: "Natalia" ,salário: 4700, setor: "vendas", presencial: true}, + { nome: "Paola" ,salário: 3500, setor: "marketing", presencial: true } +] + +Considerando o `array`acima, crie um `ENUM` para os setores e um `type` para as pessoas colaboradoras. +Em seguida, crie uma função que receba este `array`como parâmetro e retorne apenas as pessoas do setor de marketing que trabalham presencialmente. + +- **Entradas/Saídas** + + input: type[] + output: type[] + +- **Saída esperada** + + [ + { nome: "Marcos", salário: 2500, setor: "marketing", presencial: true }, + { nome: "Paola" ,salário: 3500, setor: "marketing", presencial: true } + ] */ + + enum SETORES{ + MARKETING="marketing", + VENDAS="vendas", + FINANCEIRO="financeiro" + } + + type PessoasColaboradoras = { + nome:string + salario: number + setor:string + presencial: boolean + } + + // + const colalaboradores: PessoasColaboradoras[]= [ + { nome: "Marcos", salario: 2500, setor: "marketing", presencial: true }, + { nome: "Maria" ,salario: 1500, setor: "vendas", presencial: false}, + { nome: "Salete" ,salario: 2200, setor: "financeiro", presencial: true}, + { nome: "João" ,salario: 2800, setor: "marketing", presencial: false}, + { nome: "Josué" ,salario: 5500, setor: "financeiro", presencial: true}, + { nome: "Natalia" ,salario: 4700, setor: "vendas", presencial: true}, + { nome: "Paola" ,salario: 3500, setor: "marketing", presencial: true } + ] + + const pegarInfo = colalaboradores.filter(info=> info.setor == "marketing") +pegarInfo.forEach(info=>{ + console.log(info) +}) + + diff --git a/lista-typescript/src/exercicio5.ts b/lista-typescript/src/exercicio5.ts new file mode 100644 index 0000000..f8d68c9 --- /dev/null +++ b/lista-typescript/src/exercicio5.ts @@ -0,0 +1,35 @@ +/* Considerando o `array` de usuários abaixo, crie uma função que receba este `array` como parâmetro e retorne uma lista com apenas os emails dos usuários “admin”. +Crie um `type` para os usuários + +- **Dica 2** + + Use os métodos `filter` e `map` +- **Entradas/Saídas** + + ```tsx + input: type[] + output: string[] + ``` */ + + type User = { + name:string + email: string + role: string + } + + const usuarios: User[]= + [ + {name: "Rogério", email: "roger@email.com", role: "user"}, + {name: "Ademir", email: "ademir@email.com", role: "admin"}, + {name: "Aline", email: "aline@email.com", role: "user"}, + {name: "Jéssica", email: "jessica@email.com", role: "user"}, + {name: "Adilson", email: "adilson@email.com", role: "user"}, + {name: "Carina", email: "carina@email.com", role: "admin"} + ] + + const pegarUsuario= usuarios.filter(users=> users.role =="admin") + pegarUsuario.forEach(users=>{ + console.log(users) + }) + + \ No newline at end of file diff --git a/lista-typescript/src/exercicio6.ts b/lista-typescript/src/exercicio6.ts new file mode 100644 index 0000000..66e9b83 --- /dev/null +++ b/lista-typescript/src/exercicio6.ts @@ -0,0 +1,62 @@ +/* Agora, pediram para você ajudar a fazer uma funcionalidade de um banco digital. Antes de explicar a sua tarefa, você precisa entender como eles guardam as contas dos clientes. +Basicamente, eles salvam o nome do clientes, o saldo total e uma lista contendo todas os débitos realizados pelo cliente. Exemplo: + + type User = { + cliente:string + saldoTotal: number + debitos: number[] + } + + const valores: User[]= +[ + { cliente: "João", saldoTotal: 1000, debitos: [100, 200, 300] }, + { cliente: "Paula", saldoTotal: 7500, debitos: [200, 1040] }, + { cliente: "Pedro", saldoTotal: 10000, debitos: [5140, 6100, 100, 2000] }, + { cliente: "Luciano", saldoTotal: 100, debitos: [100, 200, 1700] }, + { cliente: "Artur", saldoTotal: 1800, debitos: [200, 300] }, + { cliente: "Soter", saldoTotal: 1200, debitos: [] } +] + +const calculaValores = valores.reduce((soma, atual) => soma + atual.valor, 0); + + +console.log(calculaValores); + +Pensando em aumentar seu lucros, o banco quer identificar possíveis clientes precisando de empréstimos. +Dessa forma, a sua tarefa é criar uma função que receba este `array` como parâmetro, atualize o saldo total descontando todos + os débitos e retorne apenas os clientes com saldo negativo. */ + + + + + +/* var valores = [{valor: 1}, {valor: 2}, {valor: 3}, {valor: 4}, {valor: 5}, {valor: 1000}]; + +var resultado = valores.reduce(function (soma, atual) { + return { valor: soma.valor + atual.valor }; +}) + +console.log(resultado); +//{ + // "valor": 1015 + //} */ + type User1 = { + cliente: string, + saldoTotal: number + debitos: number[] +} + +const valores: User1[]= +[ +{ cliente: "João", saldoTotal: 1000, debitos: [100, 200, 300] }, +{ cliente: "Paula", saldoTotal: 7500, debitos: [200, 1040] }, +{ cliente: "Pedro", saldoTotal: 10000, debitos: [5140, 6100, 100, 2000] }, +{ cliente: "Luciano", saldoTotal: 100, debitos: [100, 200, 1700] }, +{ cliente: "Artur", saldoTotal: 1800, debitos: [200, 300] }, +{ cliente: "Soter", saldoTotal: 1200, debitos: [] } +] + +const calculaValores = valores[0].debitos.reduce((soma, atual) => soma + atual, 0); + + +console.log(calculaValores); \ No newline at end of file diff --git a/lista-typescript/src/exercicio7.ts b/lista-typescript/src/exercicio7.ts new file mode 100644 index 0000000..e69de29