{"id":21479296,"url":"https://github.com/bambooom/ts-learning","last_synced_at":"2025-03-17T08:42:16.614Z","repository":{"id":118775473,"uuid":"90545400","full_name":"bambooom/ts-learning","owner":"bambooom","description":null,"archived":false,"fork":false,"pushed_at":"2017-05-26T15:36:43.000Z","size":3948,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T18:15:38.290Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://bambooom.github.io/ts-learning/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bambooom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-07T16:15:15.000Z","updated_at":"2017-05-17T16:44:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"c96e02b5-1463-4fa8-b748-d1169b573855","html_url":"https://github.com/bambooom/ts-learning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bambooom%2Fts-learning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bambooom%2Fts-learning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bambooom%2Fts-learning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bambooom%2Fts-learning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bambooom","download_url":"https://codeload.github.com/bambooom/ts-learning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244004143,"owners_count":20382331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-23T11:24:32.575Z","updated_at":"2025-03-17T08:42:16.578Z","avatar_url":"https://github.com/bambooom.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TypeScript 学习\n\n```\n|____notes (语法笔记)\n|____examples (两个官网例子)\n| |____helloworld (最简单的 hello world)\n| |____react (使用 react 的 hello world)\n|____README.md\n|____node_modules (ignored)\n|____public\n| |____index.html (页面真正入口)\n|____build (ignored, 生产环境代码 bundle.js 等)\n|____src (实际主要 coding 文件夹)\n| |____App.css\n| |____App.test.tsx\n| |____App.tsx\n| |____index.css\n| |____index.tsx\n| |...\n|____tsconfig.json\n|____tslint.json\n|____yarn.lock\n```\n\n## env\n### 安装\n```bash\n$ npm install -g typescript\n```\n### 编译\n```bash\n$ tsc hello.ts\n```\n-\u003e hello.js 为编译结果\n\n### 编辑器\n我的选择是 [Visual Studio Code](https://code.visualstudio.com/):\n- 和 TypeScript 本身一样, 都是微软家出的, 内置 Typescript 支持\n- 编辑器本身也是用 TypeScript 写的\n- 轻量级\n- 也挺好看的~\n\n## demo\n- 目标: trading demo\n- url: https://bambooom.github.io/ts-learning/\n\n### 进展\n#### 17.5.7 init demo\n\n```\n$ create-react-app my-app --scripts-version=react-scripts-ts\n```\n\n~平时用习惯了的 `create-react-app` 原来有 TypeScript 版本\n- 且已经启用了 `yarn` 来管理包\n- 预设好了 `tsconfig.json` 和 `tslint.json` 配置文件\n- 和普通一样使用 `npm start` 即可在 `http://localhost:3000/` 中看到 demo 页面\n\n#### 17.5.13 deploy\n\ndeploy 方法:\n- `package.json` 中添加 `\"homepage\": \"https://bambooom.github.io/ts-learning/\",`\n- `yarn add --dev gh-pages`\n- `package.json` 中添加:\n```\n    // ...\n    \"scripts\": {\n      // ...\n      \"predeploy\": \"npm run build\",\n      \"deploy\": \"gh-pages -d build\"\n    }\n```\n- `yarn run deploy`\n\n#### 17.5.21 页面基本完成\n- 基本页面结构/样式确定\n- TODO:\n  - [x] 从某个远端获取 init 数据 (使用 [jsonbin](https://jsonbin.org/) 模拟)\n  - ~~设定定时任务, 任意更新股价信息等~~\n  - [x] 页面数据处理逻辑, 即基本买卖功能实现\n\n#### 17.5.23 data from remote\n- 使用 [jsonbin](https://jsonbin.org/) 简单存储 `data.json` 中数据作为初始数据\n  - api: https://jsonbin.org/bambooom/ts-trading-demo-data\n- App 中在 `ComponentDidMount` 时通过 `fetch` 获取 remote data 并存入 state\n  - 参考: \n    * [使用 Fetch - Web API 接口 | MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API/Using_Fetch)\n    * [Fetch API - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)\n\n#### 17.5.26 基本买卖功能完成\n- jsonbin 不太稳定, 使用 myjson.com 为备用\n  - 缺点是修改之后, url 也会变更\n- 基于条件判断完成业务逻辑, 不够优雅\n- 定时任务较复杂, 暂时放弃\n- deploy version 1.0.0\n- TODO:\n  - [ ] 取消订单","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbambooom%2Fts-learning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbambooom%2Fts-learning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbambooom%2Fts-learning/lists"}