23
Building Better AngularJS 1.x Apps With TypeScript KURT WIERSMA @KWIERSMA +

Building Better AngularJS 1.X Apps With TypeScript

Embed Size (px)

Citation preview

Page 1: Building Better AngularJS 1.X Apps With TypeScript

Building Better AngularJS 1.x Apps With TypeScript KURT WIERSMA @KWIERSMA

+

Page 2: Building Better AngularJS 1.X Apps With TypeScript

Who am I?

From Minneapolis, MN

Work for the American Academy of Neurology

Have been developing web apps for over 15 years

Favorites: Python/Django, AngularJS, TypeScript, C#/MVC

Page 3: Building Better AngularJS 1.X Apps With TypeScript

AgendaTypeScript intro and getting started

AngularJS basic knowledge assumed

How to combine two great tools

App config, routes, references.ts ordering

Controllers

Services

Authentication with API’s

Authorization and routes

Page 4: Building Better AngularJS 1.X Apps With TypeScript

AWESOME, INC

PROJECT

DATE CLIENT8/1/2015

TypeScriptA RISING STAR

Page 5: Building Better AngularJS 1.X Apps With TypeScript

http://typescriptlang.org

TypeScript lets you write JavaScript the way you really want to.

TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.

Any browser. Any host. Any OS. Open Source.

AngularJS 2 is implemented in TypeScript

Page 6: Building Better AngularJS 1.X Apps With TypeScript

JAVASCRIPT IS VALID TYPESCRIPT

Page 7: Building Better AngularJS 1.X Apps With TypeScript

TypeScript Syntax

Page 8: Building Better AngularJS 1.X Apps With TypeScript

FeaturesClasses

Modules

Interfaces

Generics

Arrow Functions

References

Type Definitions

Better “this” by default

Page 9: Building Better AngularJS 1.X Apps With TypeScript

Why would you want types?

Structure for large code bases and/or teams

Catch errors early

Provide a structured API

Tooling can provide better code completion & refactoring

Page 10: Building Better AngularJS 1.X Apps With TypeScript

What about existing JavaScript Libraries?

DefinitelyTyped provides TS definitions for tons of JS libraries

JQuery, Angular, Node, Ember, Backbone, ect.

http://definitelytyped.org

You can write you own definitions easily

TSD or Typings used to manage definitions

Page 11: Building Better AngularJS 1.X Apps With TypeScript

Custom Definitions

pusher.d.ts

Useage

Page 12: Building Better AngularJS 1.X Apps With TypeScript

Getting Started

Install:

npm install -g typescript

Compile:

tsc --sourcemap --out js/Application.js js/_all.ts

Page 13: Building Better AngularJS 1.X Apps With TypeScript

ToolingCLI: grunt with grunt-ts or gulp

TSD: managing definitions for JS libraries

tsd install angular --resolve --overwrite --save

IDEs:

WebStorm / IntelliJ (Mac & Win) [$]

Visual Studio 2012+ (Win) [$]

Visual Studio Code (Mac & Win) [Free]

Eclipse (Mac & Win) [Free]

Editors:

Sublime [$]

Atom [Free]

Page 14: Building Better AngularJS 1.X Apps With TypeScript

TYPSCRIPT COMPILEGruntFile.JS

Page 15: Building Better AngularJS 1.X Apps With TypeScript

AWESOME, INC

PROJECT

DATE CLIENT4/1/2010

AngularJSA SUPER HEROIC FRAMEWORK

Page 16: Building Better AngularJS 1.X Apps With TypeScript

APP CONFIG & ROUTESApplication.ts

Page 17: Building Better AngularJS 1.X Apps With TypeScript

CONTROLLERS

Page 18: Building Better AngularJS 1.X Apps With TypeScript

SERVICES

Page 19: Building Better AngularJS 1.X Apps With TypeScript

AUTHENTICATION WITH API’S

Page 20: Building Better AngularJS 1.X Apps With TypeScript

AUTHORIZATION & ROUTESApplication.ts

Services.js

Page 21: Building Better AngularJS 1.X Apps With TypeScript

AngularJS ToolsDebugging

Batarang

ng-inspector

AngularUI & Bootstrap UI

Testing

Protractor

ng-describe

Page 22: Building Better AngularJS 1.X Apps With TypeScript

Resources

Using Visual Studio Code with Typescript and AngularJS

John Papa’s AngularJS Style Guide

Real World Example Apps

Angular In 20 Minutes

Expense Manager

Page 23: Building Better AngularJS 1.X Apps With TypeScript

QUESTIONS?KURT WIERSMA ([email protected]) @KWIERSMA HTTP://GITHUB.COM/KWIERSMA