readme files
This commit is contained in:
parent
6b64d09397
commit
1d2802f113
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
node_modules/
|
35
03_more_options/Readme.md
Normal file
35
03_more_options/Readme.md
Normal file
@ -0,0 +1,35 @@
|
||||
# Другие настройки
|
||||
|
||||
Откройте файл **tsconfig.json**
|
||||
|
||||
## Настройка strict
|
||||
|
||||
- Запустите команду **tsc**
|
||||
|
||||
> Убедитесь что ошибок типизации нет
|
||||
|
||||
- Выставьте strict = true
|
||||
|
||||
- Повторите команду **tsc**
|
||||
|
||||
> В терминале должны появиться ошибки
|
||||
|
||||
![call error](../assets/03.png)
|
||||
|
||||
Подробнее [почитайте](https://www.typescriptlang.org/tsconfig/#strict) об этой настройке
|
||||
|
||||
2. Настройки **sourceMap** и **declaration**
|
||||
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"declaration": true,
|
||||
"sourceMap": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* Обратите внимание какие файлы появляются в **dist** кроме **.js**
|
||||
|
||||
> Посмотрите что именно в них написано и откуда эта информация появляется
|
||||
|
5
03_more_options/dist/index.js
vendored
5
03_more_options/dist/index.js
vendored
@ -1,6 +1,7 @@
|
||||
import { add } from './utils';
|
||||
const a = 1;
|
||||
const b = 2;
|
||||
const b = "2";
|
||||
const c = 3;
|
||||
console.info(add(a, b));
|
||||
console.info(add(a, parseInt(b)));
|
||||
console.log(add.call(undefined, a, b));
|
||||
//# sourceMappingURL=index.js.map
|
2
03_more_options/dist/index.js.map
vendored
2
03_more_options/dist/index.js.map
vendored
@ -1 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,GAAW,CAAC,CAAC;AACpB,MAAM,CAAC,GAAW,CAAC,CAAC;AACpB,MAAM,CAAC,GAAG,CAAC,CAAC;AAEZ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,CAAC,GAAG,GAAG,CAAC;AACd,MAAM,CAAC,GAAG,CAAC,CAAC;AAEZ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,OAAO,CAAC,GAAG,CACP,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAC5B,CAAA"}
|
@ -1,7 +1,11 @@
|
||||
import { add } from './utils';
|
||||
|
||||
const a: number = 1;
|
||||
const b: number = 2;
|
||||
const a = 1;
|
||||
const b = "2";
|
||||
const c = 3;
|
||||
|
||||
console.info(add(a, b))
|
||||
console.info(add(a, parseInt(b)));
|
||||
|
||||
console.log(
|
||||
add.call(undefined, a, b)
|
||||
)
|
||||
|
@ -1,4 +1,4 @@
|
||||
// @ts-check
|
||||
// @ts-check-off
|
||||
import { add } from './dist/utils'
|
||||
|
||||
add(1, '2')
|
||||
|
28
04_lint/Readme.md
Normal file
28
04_lint/Readme.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Lint
|
||||
|
||||
Установите зависимости
|
||||
|
||||
```shell
|
||||
npm ci
|
||||
```
|
||||
|
||||
Запуустите команду проверки
|
||||
|
||||
```shell
|
||||
npm run eslint
|
||||
```
|
||||
|
||||
> Обратите внимание на ошибки в терминале
|
||||
|
||||
* Откройте файлы с ошибками и устраните их
|
||||
|
||||
> Обратите внимание что настройки eslint для javascript не всегда корректно работают с typeescript
|
||||
|
||||
![js eslint ignore problem](../assets/04.png)
|
||||
|
||||
> Поменяйте директиву на подходящую для **typeescript**
|
||||
```
|
||||
eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
```
|
||||
|
||||
> Ошибка ушла
|
@ -5,4 +5,5 @@ const summ = (a, b) => {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const boysAndGirls = summ(boys, girls);
|
||||
|
@ -3,7 +3,7 @@
|
||||
"version": "1.0.0",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
"lint": "eslint ."
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
|
25
05_error/Readme.md
Normal file
25
05_error/Readme.md
Normal file
@ -0,0 +1,25 @@
|
||||
# Ошибки
|
||||
|
||||
> Откройте [пример](./animals.ts)
|
||||
|
||||
* запустите typesscript
|
||||
|
||||
```shell
|
||||
tsc
|
||||
```
|
||||
|
||||
> Запустите полученный javascript файл
|
||||
|
||||
```shell
|
||||
node ./animal.js
|
||||
```
|
||||
|
||||
> Обратите внимание на ошибку при запуске
|
||||
|
||||
![ts error](../assets/05.png)
|
||||
|
||||
> Определите почему именно возникла ошибка
|
||||
|
||||
> Обратите внимание что typescript не указал на ошибку до runtime
|
||||
|
||||
[Полезные ссылки](./links.md)
|
@ -1,40 +0,0 @@
|
||||
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
|
3
06_complex/Readme.md
Normal file
3
06_complex/Readme.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Разберите приведённые примеры
|
||||
|
||||
> обратите внимание как применяется infer
|
@ -14,4 +14,4 @@ const double = (x: number, s: 'foo') => x * 2;
|
||||
// get type of first argument of function
|
||||
type GetFirstFuncArg<Arg> = Arg extends (a, x: infer T) => any ? T : never;
|
||||
|
||||
type DoubleArgType = GetFirstFuncArg<typeof double>
|
||||
type DoubleArgType = GetFirstFuncArg<typeof double>
|
||||
|
BIN
assets/03.png
Normal file
BIN
assets/03.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
BIN
assets/04.png
Normal file
BIN
assets/04.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
assets/05.png
Normal file
BIN
assets/05.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
Loading…
Reference in New Issue
Block a user