Showing
26 changed files
with
574 additions
and
0 deletions
.editorconfig
0 → 100644
1 | +# http://editorconfig.org | |
2 | +root = true | |
3 | + | |
4 | +[*] | |
5 | +indent_style = space | |
6 | +indent_size = 2 | |
7 | +end_of_line = lf | |
8 | +charset = utf-8 | |
9 | +trim_trailing_whitespace = true | |
10 | +insert_final_newline = true | |
11 | + | |
12 | +[*.md] | |
13 | +trim_trailing_whitespace = false | |
14 | + | |
15 | +[Makefile] | |
16 | +indent_style = tab | ... | ... |
.eslintrc.json
0 → 100644
.gitignore
0 → 100644
1 | +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | |
2 | + | |
3 | +# dependencies | |
4 | +**/node_modules | |
5 | +# roadhog-api-doc ignore | |
6 | +/src/utils/request-temp.js | |
7 | +_roadhog-api-doc | |
8 | + | |
9 | +# production | |
10 | +/dist | |
11 | +/.vscode | |
12 | +/.fleet | |
13 | + | |
14 | +# misc | |
15 | +.DS_Store | |
16 | +npm-debug.log* | |
17 | +yarn-error.log | |
18 | + | |
19 | +/coverage | |
20 | +.idea | |
21 | +yarn.lock | |
22 | +package-lock.json | |
23 | +pnpm-lock.yaml | |
24 | +*bak | |
25 | +.vscode | |
26 | +.history | |
27 | + | |
28 | +# visual studio code | |
29 | +.history | |
30 | +*.log | |
31 | +functions/* | |
32 | +.temp/** | |
33 | + | |
34 | +# umi | |
35 | +.umi | |
36 | +.umi-production | |
37 | + | |
38 | +# screenshot | |
39 | +screenshot | |
40 | +.firebase | |
41 | +.eslintcache | |
42 | + | |
43 | +build | |
44 | + | |
45 | +package-lock.json | ... | ... |
.husky/pre-commit
0 → 100755
.prettierignore
0 → 100644
.prettierrc
0 → 100644
README.md
0 → 100644
1 | +# 启效低代码平台 | |
2 | + | |
3 | +基于[qx-frontend-admin-example](http://gitlab.qgutech.com/framework/qx-frontend-admin-example)项目创建。 | |
4 | + | |
5 | +基于 Ant Design Pro(v4),使用了 Ant Design(v4.16.x)、[UMI](https://umijs.org/zh-CN/docs/getting-started)(v3.5.x)构建的[React](https://zh-hans.reactjs.org/)(v17)项目,使用[`TypeScript`](https://pro.ant.design/docs/uset-typescript-cn),Webpack5。 | |
6 | + | |
7 | +技术栈:UMI + AntD + AntD Pro + dva + XRender | |
8 | + | |
9 | +**功能特性:** | |
10 | + | |
11 | +- 多主题 | |
12 | +- 国际化 | |
13 | +- 登录 | |
14 | +- 权限 | |
15 | +- UI 测试 | |
16 | +- 错误处理 | |
17 | + | |
18 | +**技术特点:** | |
19 | + | |
20 | +- 按需加载 | |
21 | +- 服务端渲染 | |
22 | + | |
23 | +## 一、环境准备 | |
24 | + | |
25 | +NODE 环境:node:`v12.22.1`以上(`或v16.9.1`) | |
26 | + | |
27 | +使用青谷npm仓库: | |
28 | +```bash | |
29 | +npm install -g nrm | |
30 | +nrm add qgNpm http://registry.npm.qgutech.com/ | |
31 | +nrm use qgNpm | |
32 | +nrm ls | |
33 | +``` | |
34 | + | |
35 | +安装 `node_modules`(初始化): | |
36 | + | |
37 | +```bash | |
38 | +npm install | |
39 | +``` | |
40 | + | |
41 | +## 二、提供的脚本 | |
42 | + | |
43 | +Ant Design Pro 提供了一些有用的脚本,帮助您快速启动和构建 web 项目、代码样式检查和测试。 `package.json`中提供的脚本。可以安全地修改或添加其他脚本: | |
44 | + | |
45 | +### 启动项目 | |
46 | + | |
47 | +```bash | |
48 | +yarn start:dev | |
49 | +``` | |
50 | + | |
51 | +或 | |
52 | + | |
53 | +```bash | |
54 | +npm start:dev | |
55 | +``` | |
56 | + | |
57 | +### 生成项目 | |
58 | + | |
59 | +```bash | |
60 | +npm run build | |
61 | +``` | |
62 | + | |
63 | +### 检查代码样式 | |
64 | + | |
65 | +```bash | |
66 | +npm run lint | |
67 | +``` | |
68 | + | |
69 | +也可以使用脚本自动修复某些 lint 错误: | |
70 | + | |
71 | +```bash | |
72 | +npm run lint:fix | |
73 | +``` | |
74 | + | |
75 | +### 测试代码 | |
76 | + | |
77 | +```bash | |
78 | +npm test | |
79 | +``` | |
80 | + | |
81 | +**其它** | |
82 | + | |
83 | +```bash | |
84 | +$ yarn add <package...> | |
85 | +$ yarn remove <package...> | |
86 | +``` | |
87 | + | |
88 | +## 三、参考资料 | |
89 | + | |
90 | +- [《启效前端低代码方案》](https://qgutech.yuque.com/docs/share/13d7289e-2b44-44c2-a44a-1657b592758e) | |
91 | +- [React](https://zh-hans.reactjs.org/) | |
92 | +- [UMI](https://umijs.org/zh-CN/docs/getting-started) | [UMI 入门](https://www.yuque.com/umijs/umi/dvalore) | |
93 | +- [Ant Design](https://ant.design) | |
94 | +- [Ant Design Pro](https://pro.ant.design) | [github](https://github.com/ant-design/ant-design-pro) | |
95 | +- [XRender](https://xrender.fun) | |
96 | +- [AntV X6(流程图)](https://antv-x6.gitee.io/zh/docs/tutorial/getting-started) | |
97 | +- [Official公式文档](https://formulajs.info) | |
98 | +- [CodeMirror代码编辑器](https://codemirror.net/doc/manual.html) | |
99 | +- [JS日期处理类库Moment](http://momentjs.cn/) | |
100 | +- [ahooks](https://ahooks.js.org/zh-CN) | |
101 | + | |
102 | + | |
103 | +## 四、启效前端规范 | |
104 | +- 开发工具:idea、webstorm | |
105 | +- css、html、js 结构与命名都需要具有语义化 | |
106 | +- CSS命名规则 | |
107 | + - 遵循[BEM命名规则](https://bemcss.com/) | |
108 | + - 以`qx` 开头,如果是模块功能后面跟上模块缩写。eg:`qx-fr` | |
109 | +- 文件/文件夹名以中划线`-`连接,eg: `rel-selector` | |
110 | +- 启用eslint校验 | |
111 | +- ts/js规范: | |
112 | + - 定义interface、type、类 遵循大驼峰命名规范 | |
113 | + - 不能使用命名变量:`_` | |
114 | +- html | |
115 | + - 如非必要不要,不要增加过多的html标签包裹 | |
116 | + | |
117 | + | |
118 | +## 五、开启开发者模式 | |
119 | +`window.sessionStorage.setItem("DEVELOPER_MODE", 1)` | ... | ... |
config/vite.config.js
0 → 100644
config/webpack.base.js
0 → 100644
1 | +const CopyPlugin = require('copy-webpack-plugin'); | |
2 | +const HtmlWebpackPlugin = require('html-webpack-plugin'); | |
3 | +const process = require('process'); | |
4 | +const path = require('path'); | |
5 | + | |
6 | +const cwd = process.cwd(); | |
7 | + | |
8 | +module.exports = { | |
9 | + output: { | |
10 | + filename: 'index.js', | |
11 | + libraryTarget: 'umd', | |
12 | + }, | |
13 | + entry: path.resolve(cwd, './src/index.tsx'), | |
14 | + module: { | |
15 | + rules: [ | |
16 | + { | |
17 | + test: /\.(js|jsx)$/, | |
18 | + use: { | |
19 | + loader: 'babel-loader', | |
20 | + options: { | |
21 | + presets: ['@babel/preset-env', '@babel/preset-react'], | |
22 | + }, | |
23 | + }, | |
24 | + }, | |
25 | + { | |
26 | + test: /\.(ts|tsx)$/, | |
27 | + use: { | |
28 | + loader: 'ts-loader', | |
29 | + }, | |
30 | + }, | |
31 | + { | |
32 | + test: /\.(ttf|eot|woff(2)?)(\?[a-z0-9=&.]+)?$/, | |
33 | + use: { | |
34 | + loader: 'file-loader', | |
35 | + }, | |
36 | + }, | |
37 | + { | |
38 | + test: /\.less$/i, | |
39 | + use: ['style-loader', 'css-loader', 'less-loader'], | |
40 | + }, | |
41 | + { | |
42 | + test: /\.svg$/, | |
43 | + use: ['@svgr/webpack', 'url-loader'], | |
44 | + }, | |
45 | + ], | |
46 | + }, | |
47 | + // externals: { | |
48 | + // react: 'React', | |
49 | + // 'react-dom': 'ReactDOM', | |
50 | + // }, | |
51 | + resolve: { | |
52 | + extensions: ['.json', '.jsx', '.js', '.ts', '.tsx'], | |
53 | + alias: { | |
54 | + '@': path.resolve(cwd, './src/'), | |
55 | + }, | |
56 | + }, | |
57 | + plugins: [ | |
58 | + new HtmlWebpackPlugin({ | |
59 | + template: path.resolve(cwd, './src/public/index.html'), | |
60 | + }), | |
61 | + new CopyPlugin({ | |
62 | + patterns: [ | |
63 | + { | |
64 | + from: path.resolve(cwd, './src/public'), | |
65 | + to: 'public', | |
66 | + }, | |
67 | + ], | |
68 | + }), | |
69 | + ], | |
70 | +}; | ... | ... |
config/webpack.dev.js
0 → 100644
1 | +const { merge } = require('webpack-merge'); | |
2 | +const baseConfig = require('./webpack.base'); | |
3 | + | |
4 | +module.exports = merge(baseConfig, { | |
5 | + mode: 'development', | |
6 | + devServer: { | |
7 | + hot: false, | |
8 | + headers: { | |
9 | + 'Access-Control-Allow-Origin': '*', | |
10 | + }, | |
11 | + }, | |
12 | + externals: { | |
13 | + }, | |
14 | +}); | ... | ... |
config/webpack.prod.js
0 → 100644
index.html
0 → 100644
1 | +<!DOCTYPE html> | |
2 | +<html lang="zh"> | |
3 | +<head> | |
4 | + <meta charset="UTF-8"> | |
5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
6 | + <title>启效微前端项目</title> | |
7 | +</head> | |
8 | +<body> | |
9 | + <div id="root"></div> | |
10 | + <script type="module" src="./src/index.tsx"></script> | |
11 | +</body> | |
12 | +</html> | ... | ... |
package.json
0 → 100644
1 | +{ | |
2 | + "name": "qx-designer-dataflow", | |
3 | + "version": "1.0.0", | |
4 | + "description": "", | |
5 | + "main": "index.js", | |
6 | + "scripts": { | |
7 | + "start": "vite --config ./config/vite.config.js", | |
8 | + "build": "webpack build --config ./config/webpack.prod.js", | |
9 | + "preview": "webpack-dev-server --config ./config/webpack.dev.js", | |
10 | + "prepare": "husky install", | |
11 | + "lint-staged": "lint-staged", | |
12 | + "prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'" | |
13 | + }, | |
14 | + "lint-staged": { | |
15 | + "src/**/*.{js,jsx,less,md,json}": [ | |
16 | + "prettier --write" | |
17 | + ], | |
18 | + "src/**/*.ts?(x)": [ | |
19 | + "prettier --parser=typescript --write" | |
20 | + ] | |
21 | + }, | |
22 | + "keywords": [], | |
23 | + "author": "", | |
24 | + "license": "ISC", | |
25 | + "dependencies": { | |
26 | + "hox": "^2.1.1", | |
27 | + "react": "^18.2.0", | |
28 | + "react-dom": "^18.2.0", | |
29 | + "react-router": "^6.15.0", | |
30 | + "react-router-dom": "^6.15.0" | |
31 | + }, | |
32 | + "devDependencies": { | |
33 | + "@babel/core": "^7.22.9", | |
34 | + "@babel/preset-env": "^7.22.9", | |
35 | + "@babel/preset-react": "^7.22.5", | |
36 | + "@svgr/webpack": "^8.1.0", | |
37 | + "@types/react": "^18.2.21", | |
38 | + "@types/react-dom": "^18.2.7", | |
39 | + "babel-loader": "^9.1.3", | |
40 | + "copy-webpack-plugin": "^11.0.0", | |
41 | + "css-loader": "^6.8.1", | |
42 | + "eslint-config-prettier": "^9.0.0", | |
43 | + "eslint-plugin-prettier": "^5.0.0", | |
44 | + "file-loader": "^6.2.0", | |
45 | + "html-webpack-plugin": "^5.5.3", | |
46 | + "husky": "^8.0.3", | |
47 | + "less": "^4.2.0", | |
48 | + "less-loader": "^11.1.3", | |
49 | + "lint-staged": "^14.0.1", | |
50 | + "prettier": "^3.0.2", | |
51 | + "style-loader": "^3.3.3", | |
52 | + "ts-loader": "^9.4.4", | |
53 | + "typescript": "^5.2.2", | |
54 | + "url-loader": "^4.1.1", | |
55 | + "vite": "^4.4.9", | |
56 | + "webpack": "^5.88.2", | |
57 | + "webpack-cli": "^5.1.4", | |
58 | + "webpack-dev-server": "^4.15.1", | |
59 | + "webpack-merge": "^5.9.0" | |
60 | + } | |
61 | +} | ... | ... |
src/components/index.ts
0 → 100644
src/index.tsx
0 → 100644
src/page/about/index.tsx
0 → 100644
src/page/about/styles.less
0 → 100644
src/page/home/index.ts
0 → 100644
src/page/root/index.tsx
0 → 100644
src/public/index.html
0 → 100644
src/router/index.tsx
0 → 100644
1 | +import { createHashRouter, RouterProvider } from 'react-router-dom'; | |
2 | +import Root from '../page/root'; | |
3 | +import About from '../page/about'; | |
4 | + | |
5 | +export default () => ( | |
6 | + <RouterProvider | |
7 | + router={createHashRouter([ | |
8 | + { | |
9 | + path: '/', | |
10 | + element: <Root />, | |
11 | + children: [ | |
12 | + { | |
13 | + path: '/about', | |
14 | + element: <About />, | |
15 | + }, | |
16 | + ], | |
17 | + }, | |
18 | + ])} | |
19 | + /> | |
20 | +); | ... | ... |
src/services/index.ts
0 → 100644
src/store/global/index.ts
0 → 100644
1 | +import { useState } from 'react'; | |
2 | +import { createStore } from 'hox'; | |
3 | + | |
4 | +export const [useGlobalStore, GlobalStoreProvider] = createStore(() => { | |
5 | + const [count, setCount] = useState(0); | |
6 | + | |
7 | + const increase = () => { | |
8 | + setCount(count + 1); | |
9 | + }; | |
10 | + | |
11 | + const decrease = () => { | |
12 | + setCount(count - 1); | |
13 | + }; | |
14 | + | |
15 | + return { | |
16 | + count, | |
17 | + increase, | |
18 | + decrease, | |
19 | + }; | |
20 | +}); | ... | ... |
src/store/index.ts
0 → 100644
tsconfig.json
0 → 100644
1 | +{ | |
2 | + "compilerOptions": { | |
3 | + /* Visit https://aka.ms/tsconfig to read more about this file */ | |
4 | + | |
5 | + /* Projects */ | |
6 | + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ | |
7 | + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ | |
8 | + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ | |
9 | + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ | |
10 | + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ | |
11 | + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ | |
12 | + | |
13 | + /* Language and Environment */ | |
14 | + "target": "esnext", | |
15 | + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ | |
16 | + "jsx": "react-jsx", /* Specify what JSX code is generated. */ | |
17 | + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ | |
18 | + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ | |
19 | + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ | |
20 | + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ | |
21 | + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ | |
22 | + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ | |
23 | + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ | |
24 | + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ | |
25 | + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ | |
26 | + | |
27 | + /* Modules */ | |
28 | + "module": "esnext", /* Specify what module code is generated. */ | |
29 | + // "rootDir": "./", /* Specify the root folder within your source files. */ | |
30 | + "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ | |
31 | + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ | |
32 | + "paths": { | |
33 | + "@/*": ["./src/*"] | |
34 | + }, /* Specify a set of entries that re-map imports to additional lookup locations. */ | |
35 | + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ | |
36 | + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ | |
37 | + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ | |
38 | + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ | |
39 | + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ | |
40 | + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ | |
41 | + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ | |
42 | + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ | |
43 | + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ | |
44 | + // "resolveJsonModule": true, /* Enable importing .json files. */ | |
45 | + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ | |
46 | + // "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */ | |
47 | + | |
48 | + /* JavaScript Support */ | |
49 | + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ | |
50 | + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ | |
51 | + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ | |
52 | + | |
53 | + /* Emit */ | |
54 | + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ | |
55 | + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ | |
56 | + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ | |
57 | + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ | |
58 | + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ | |
59 | + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ | |
60 | + // "outDir": "./dist", /* Specify an output folder for all emitted files. */ | |
61 | + // "removeComments": true, /* Disable emitting comments. */ | |
62 | + // "noEmit": true, /* Disable emitting files from a compilation. */ | |
63 | + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ | |
64 | + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ | |
65 | + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ | |
66 | + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ | |
67 | + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ | |
68 | + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ | |
69 | + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ | |
70 | + // "newLine": "crlf", /* Set the newline character for emitting files. */ | |
71 | + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ | |
72 | + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ | |
73 | + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ | |
74 | + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ | |
75 | + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ | |
76 | + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ | |
77 | + | |
78 | + /* Interop Constraints */ | |
79 | + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ | |
80 | + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ | |
81 | + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ | |
82 | + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ | |
83 | + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ | |
84 | + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ | |
85 | + | |
86 | + /* Type Checking */ | |
87 | + "strict": true, /* Enable all strict type-checking options. */ | |
88 | + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ | |
89 | + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ | |
90 | + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ | |
91 | + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ | |
92 | + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ | |
93 | + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ | |
94 | + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ | |
95 | + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ | |
96 | + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ | |
97 | + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ | |
98 | + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ | |
99 | + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ | |
100 | + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ | |
101 | + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ | |
102 | + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ | |
103 | + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ | |
104 | + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ | |
105 | + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ | |
106 | + | |
107 | + /* Completeness */ | |
108 | + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ | |
109 | + "skipLibCheck": true /* Skip type checking all .d.ts files. */ | |
110 | + } | |
111 | +} | ... | ... |