Compare commits

..

No commits in common. "b29bdd31a3b3944c7416354ba9775b7a2ca91084" and "14bd95b5ae3f40f43f2b9463b14285d13344b276" have entirely different histories.

6 changed files with 44 additions and 78 deletions

View File

@ -1,29 +0,0 @@
Рассмотрим трансформацию в разные target и module
1. Откройте файл **tsconfig.json**
2. Меняйте значения для полей **target** и **module** и запускайте **tsc**
пример 1
```json
{
"compilerOptions": {
"target": "ES5",
"module": "ES2015"
}
}
```
пример 2
```json
{
"compilerOptions": {
"target": "ESNEXT",
"module": "commonjs"
}
}
```
3. Наблюдаем результат выполнения команды tsc в директории **dist**

View File

@ -1,8 +1,6 @@
import { Utils } from './utils';
import { add } from './utils';
const a = 1;
const b = 22;
const utils = new Utils(a);
console.info(utils.add(b));
console.info(add(a, b));

View File

@ -1,19 +1 @@
export const add = (a: number, b: number) => a + b;
export class WithValue {
value: number;
constructor (value) {
this.value = value
}
}
export class Utils extends WithValue {
constructor(value) {
super(value)
}
add = (...value: number[]) => {
this.value = value?.reduce((acc, nextValue = 0) => add(acc, nextValue), this.value)
return this.value
};
}

View File

@ -1,7 +1,7 @@
{
"compilerOptions": {
"target": "ES5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "ES2015", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "UMD", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"outDir": "dist"
},
"files": [

View File

@ -1,25 +0,0 @@
# Ошибки
> Откройте [пример](./animals.ts)
* запустите typesscript
```shell
tsc
```
> Запустите полученный javascript файл
```shell
node ./animal.js
```
> Обратите внимание на ошибку при запуске
![ts error](../assets/05.png)
> Определите почему именно возникла ошибка
> Обратите внимание что typescript не указал на ошибку до runtime
[Полезные ссылки](./links.md)

40
05_error/animals.js Normal file
View File

@ -0,0 +1,40 @@
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var Animal = /** @class */ (function () {
function Animal() {
}
return Animal;
}());
var Dog = /** @class */ (function (_super) {
__extends(Dog, _super);
function Dog() {
return _super !== null && _super.apply(this, arguments) || this;
}
Dog.prototype.bark = function () { };
return Dog;
}(Animal));
var Cat = /** @class */ (function (_super) {
__extends(Cat, _super);
function Cat() {
return _super !== null && _super.apply(this, arguments) || this;
}
Cat.prototype.meow = function () { };
return Cat;
}(Animal));
var cage1 = [new Dog(), new Dog()];
var cage2 = cage1; // ok
cage2.push(new Cat()); // ok
cage1.forEach(function (dog) { return dog.bark(); }); // ok