function combine Namesfirst string last string string return
function combine. Names(first: string, last: string): string { return `${first} ${last}`; } const first. Name: string = 'Philip'; const last. Name: string = 'Fry'; console. log(combine. Names(first. Name, last. Name)); @nebrius
interface IPerson { first. Name: string; last. Name: string; age: number; } const fry: IPerson = { first. Name: 'Philip', last. Name: 'Fry', age: 30 } @nebrius
interface IShip { name: string; takeoff(): void; } class Ship implements IShip { private ship. Name: string; public get name() { return this. ship. Name; } public takeoff(): void { // Blastoff! } } @nebrius
import { IShip } from '. /IShip'; export class Ship implements IShip { private ship. Name: string; public get name() { return this. ship. Name; } public takeoff(): void { // Blastoff! } } @nebrius
declare module "planet" { export function visit(): void; export function get. Cities(): City[]; export interface City { population: number; founded: Date; } } @nebrius
@nebrius
@nebrius
{ "compiler. Options": { "target": "es 2015", "module": "commonjs", "strict": true, "root. Dir": "src", "out. Dir": "dist", "source. Map": true }, "include": [ "src/**/*. ts" ] } @nebrius
@nebrius
@nebrius
import { Item. View } from 'Item. View'; import * as React from 'react'; export interface IContainer. Props { items: string[]; } export class Container. View extends React. Component<IContainer. Props, null> { public render() { return ( <div class. Name="container"> {this. props. items. map((item) => (<Item. View item={item} />))} </div> ); } } @nebrius
@nebrius
module. exports = { entry: ". /src/index. tsx", output: { filename: "bundle. js", path: ". /dist" }, // Enable sourcemaps for debugging webpack's output. mode: "development", devtool: "inline-source-map", resolve: { extensions: [". ts", ". tsx", ". json"] }, // Continued on next slide @nebrius
@nebrius
Bryan Hughes, @nebrius
- Slides: 34