Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lista-typescript/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
35 changes: 35 additions & 0 deletions lista-typescript/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions lista-typescript/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"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",
"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": "",
"license": "ISC",
"dependencies": {
"typescript": "^4.7.2"
}
}
17 changes: 17 additions & 0 deletions lista-typescript/src/exercicio1.ts
Original file line number Diff line number Diff line change
@@ -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"))


7 changes: 7 additions & 0 deletions lista-typescript/src/exercicio2.ts
Original file line number Diff line number Diff line change
@@ -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();
47 changes: 47 additions & 0 deletions lista-typescript/src/exercicio3.ts
Original file line number Diff line number Diff line change
@@ -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))
57 changes: 57 additions & 0 deletions lista-typescript/src/exercicio4.ts
Original file line number Diff line number Diff line change
@@ -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)
})


35 changes: 35 additions & 0 deletions lista-typescript/src/exercicio5.ts
Original file line number Diff line number Diff line change
@@ -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)
})


62 changes: 62 additions & 0 deletions lista-typescript/src/exercicio6.ts
Original file line number Diff line number Diff line change
@@ -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);
Empty file.
11 changes: 11 additions & 0 deletions lista-typescript/tsconfig.json
Original file line number Diff line number Diff line change
@@ -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. */
}
}