Compare commits
No commits in common. "b29bdd31a3b3944c7416354ba9775b7a2ca91084" and "14bd95b5ae3f40f43f2b9463b14285d13344b276" have entirely different histories.
b29bdd31a3
...
14bd95b5ae
@ -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**
|
@ -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));
|
||||
|
@ -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
|
||||
};
|
||||
}
|
||||
|
@ -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": [
|
||||
|
@ -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
40
05_error/animals.js
Normal 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
|
Loading…
Reference in New Issue
Block a user