Please enable JavaScript.
Coggle requires JavaScript to display documents.
TypeScript parte 2: Mais técnicas e boas práticas (Aula 2: Lapidando nosso…
TypeScript parte 2: Mais técnicas e boas práticas
Aula 1: NameSpace e módulos externos
NameSpaces são usados para delimitar o escopo.
A sintaxe de módulos do ES2015 é mais aceita pela comunidade do que os namespaces do typescript.
Como ainda não houve padronização de como fazer a importação de módulos nativamente, é necessário usar um loader de módulos como o system.js.
Técnica Barrel: É uma maneira de centralizarmos em um único módulo a importação de outros módulos. Ele evita a explosão da instrução import diversas vezes em um mesmo arquivo quando esse depende de uma série de outros artefatos.
Aula 2: Lapidando nosso código
Se as propriedades de uma classe podem ser lidas, porém não pode ser setadas, pode-se usar o modificador de acesso readonly ao invés de usar o private e ter que criar os métodos get de cada propriedade.
Parâmetros opcionais podem ser definidos usando o operador interrogação(?) logo após o nome da propriedade e antes da definição do tipo. Parâmetros opcionais são sempre os últimos parâmetros na definição de uma função.
Ativando a opção "strickNullChecks", null e undefined passam a não fazer mais parte do domínio dos tipos e só podem ser atribuídos a eles mesmos. Com a exceção de undefined, que pode ser atribuído a void.
TypeScript possui um tipo curioso, o tipo never. Este tipo é aplicável à métodos ou funções que por algum motivo, planejado ou não, podem não terminar sua execução de seu bloco.
Enums começam com valor 0 por padrão e vai incrementando. Se o valor de um for modificado, os próximos seguem a ordem de acordo com o valor modificado.
Aula 3: O poder dos decorators
Decorator de método
Target: é o primeiro parâmetro, possui uma referência para o elemento cujo método foi decorado
Property: é o segundo parâmetro, é uma string que nos retorna o nome do método decorado.
Descriptor: é o terceiro parâmetro, prover acesso ao método que desejamos modificar sua execução, através de descriptor.value.
No typescript existe uma variável global chamada "performance", na qual existem alguns métodos úteis para verificar a performance da aplicação, como por exemplo o método "now" que retorna em milissegundos o tempo de execução até aquele ponto específico.
A função "defineProperty" de Object pode ser usada para definir uma propriedade getter ou setter.
Decorator de classe
Constructor: é o primeiro parâmetro, e é o construtor da classe decorada.
Decorator de propriedade
É bem semelhante ao de método
Aula 4: API externa e interface
Interfaces no typescript são muito boas para serem utilizadas para tipar o retorno de uma API externa.
Interfaces também podem ser utilizadas para tipar funções
Aula 5: Mais sobre interfaces
Se você deseja obrigar que o desenvolvedor implemente um método em específico, você pode criar um interface para que ele possa implementa-lá ao invés de criar um classe abstrata com um método abstrato e fazê-lo trocar a herança por polimorfismo.
Uma classe pode implementar quantas interfaces forem necessárias. Mas não pode estender mais de uma classe.
Se for utilizar o typescript com o node no backend, evite utilizar strictNullChecks e noImplicityAny, pois a ativação dessas configurações gerarão inúmeros problemas com possíveis definições que você venha a baixar.
Async/Await: Permite o uso de promises em um código com estilo mais síncrono.