I don't have a formal package.json
here, but run this and you're all set:
npm i -g typescript
npm i lodash @types/lodash
Enjoy!
import * as _ from 'lodash'; // or import _ = require('lodash') | |
interface HTTPRequest{ | |
code: 200|400; | |
message: string; | |
} | |
class Employee { | |
name: string; | |
age: number; | |
bitmap: boolean[][] | |
constructor (name = 'David') { | |
this.name = name | |
this.bitmap = [[false, true], [true, false], [false, true, true]] | |
} | |
greet () { | |
return `Hi, ${this.name}!` | |
} | |
async setAge () { | |
this.age = await this.fetchAge(); | |
} | |
flatBitmap () { | |
return _.flatten(this.bitmap) | |
} | |
fetchAge () { | |
// const response: HTTPRequest = request() | |
// if (response.code === 200) {} | |
// else { | |
// response.code | |
// } | |
return Promise.resolve(25) | |
} | |
} | |
const d = new Employee() | |
const w = new Employee('Wad') | |
console.log(d.greet()) | |
console.log(w.greet()) | |
d.setAge().then(data => { | |
console.log('age set!') | |
console.log(d.age) | |
}) |
{ | |
"compilerOptions": { | |
"module": "commonjs", | |
"target": "es6", | |
"noImplicitAny": true, | |
"sourceMap": false, | |
"alwaysStrict": true | |
} | |
} |