TypeScript
Jump to navigation
Jump to search
npm install typescript --save-dev mkdir src dist npx tsc --init vim tsconfig.json vim /src/index.ts npx tsc index.ts npx tsc -w npm install tslint --save-dev npx eslint --init npm fund npx gts init {
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"outDir": "dist",
"sourceMap": true
}
}
|
npm i typescript -D mkdir src dist npx tsc --init vim tsconfig.json vim /src/index.ts npx tsc index.ts npx tsc -w npm i tslint -D npx eslint --init npm fund npx gts init const world = 'world';
export function hello(word: string = world): string {
return `Hello ${world}! `;
}
|
.gitignore
dist
node_modules
npm-debug.log
person.ts
namespace People {
export class Person {
constructor(private firstName: string, private lastName: string){
//TODO
}
}
}
nation.ts
namespace People {
export class Nation {
private population: Person[] = [];
add(person: Person): void {
this.population.push(person);
}
get count(): number {
return this.population.length;
}
}
}
app.ts
/// <reference path="person.ts" />
/// <reference path="nation.ts" />
import Person = People.Person;
import Nation = People.Nation;
const nation: Nation = new Nation();
nation.add(new Person('John', 'Lennon'));
console.log(nation.count);
tsconfig.json
{
"compilerOptions": {
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "dist/app.js",
"target": "es5"
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
gulpfile.js
var uglify = require('gulp-uglify');
var gulp = require('gulp');
var pump = require('pump');
gulp.task('compress', function (cb) {
pump([
gulp.src('dist/app.js'),
uglify(),
gulp.dest('dist/minify')
],
cb
);
});
gulp.task('default', ['compress']);
package.json
{
"scripts": {
"gulp": "./node_modules/.bin/gulp",
"compile": "./node_modules/.bin/tsc",
"start": "npm run compile && node dist/app.js && npm run gulp"
},
"devDependencies": {
"typescript": "^2.0.9",
"gulp-uglify": "^3.0.0",
"gulp": "^3.9.1",
"pump": "^3.0.0"
}
}
Build
npm install
npm start