-
Notifications
You must be signed in to change notification settings - Fork 0
/
tsconfig.json
48 lines (48 loc) · 2.01 KB
/
tsconfig.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
"compilerOptions": {
"outDir": "./dist/",
// Подсвечивает все места где не указан тип
// Однако это не означает, что теперь вовсе нельзя использовать any.
// Это означает лишь, что в подобных ситуация разработчик должен явно писать any,
"noImplicitAny": true,
"module": "ESNext",
// В какую спецификацию компилируем: для поддержки большинства браузеров
"target": "es5",
"jsx": "react-jsx",
// Компилятор будет обрабатывать не только TS файлы, но и JS файлы
"allowJs": true,
"strict": true,
"moduleResolution": "node",
// Для абсолютного импорта
"baseUrl": ".",
"paths": {
"*": ["./src/*"],
"react": ["node_modules/@types/react"]
},
// esModuleInterop позволяет работать с пакетами, которые используют
// common js как с обычными пакета с помощью import (require() module.export) = common js
// import Moment from 'moment';
// без флага esModuleInterop результат undefined
// console.log(Moment);
// c флагом результат [object Object]
// console.log(Moment);
"esModuleInterop": true,
// Если какая-либо библиотека не имеет default import,
// лоадеры вроде ts-loader или babel-loader автоматически создают их
// вместо такого импорта
// import * as React from 'react';
// можно писать такой
// import React from 'react';
"allowSyntheticDefaultImports": true
},
"ts-node": {
"compilerOptions": {
"module": "CommonJS",
"resolveJsonModule": true
}
},
"include": [
"./src/**/*.ts",
"./src/**/*.tsx",
]
}