diff --git a/code/ts-practice/package.json b/code/ts-practice/package.json index 618f582..8dd0b88 100644 --- a/code/ts-practice/package.json +++ b/code/ts-practice/package.json @@ -2,7 +2,6 @@ "name": "code_test", "version": "1.0.0", "description": "用于测试前端的typescript代码", - "main": "index.ts", "type": "module", "scripts": { "test": "ts-node-esm index.ts" diff --git a/code/ts-practice/shims-vue.d.ts b/code/ts-practice/shims-vue.d.ts deleted file mode 100644 index 866e599..0000000 --- a/code/ts-practice/shims-vue.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * @Author: Kane - * @Date: 2023-03-04 17:23:02 - * @LastEditors: Kane - * @FilePath: /task_schedule/shims-vue.d.ts - * @Description: - * - * Copyright (c) ${2022} by Kane, All Rights Reserved. - */ -declare module '*.vue' { - import { ComponentOptions } from 'vue'; - const componentOptions: ComponentOptions; - export default componentOptions; -} \ No newline at end of file diff --git a/code/ts-practice/src/index.ts b/code/ts-practice/src/index.ts index 4760b84..592b719 100644 --- a/code/ts-practice/src/index.ts +++ b/code/ts-practice/src/index.ts @@ -9,31 +9,22 @@ */ // 索引类型 -interface Point -{ - x: number; - y: number; -} +import { getProperty } from "@/utils/api/api.js"; -type kes = keyof Point; -type name = "name"; - -const value: name = "name"; - -// 联合类型 interface Circle { radius: number; area: number; } -interface Rectangle +const circle: Circle = { - area: number; - wdith: number; - height: number; -} + radius: 100, + area: 1000, +}; -type Shape = Circle | Rectangle; +const kind = getProperty(circle, "area"); +type kind2 = { [P in keyof Circle]: Circle[P] }; -let a: Shape; +console.log(kind); +console.log(circle.area); diff --git a/code/ts-practice/src/utils/api/api.ts b/code/ts-practice/src/utils/api/api.ts new file mode 100644 index 0000000..631f555 --- /dev/null +++ b/code/ts-practice/src/utils/api/api.ts @@ -0,0 +1,16 @@ +/* + * @Author: Kane + * @Date: 2023-03-07 11:21:38 + * @LastEditors: Kane + * @FilePath: /ts-practice/src/utils/api/api.ts + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ + +function getProperty(obj: T, key: K): T[K] +{ + return obj[key]; +} + +export { getProperty }; diff --git a/code/ts-practice/src/utils/api/request.ts b/code/ts-practice/src/utils/api/request.ts index 0457cd3..713f9fa 100644 --- a/code/ts-practice/src/utils/api/request.ts +++ b/code/ts-practice/src/utils/api/request.ts @@ -16,3 +16,14 @@ service.interceptors.request.use( return await Promise.reject(error); } ); + +service.interceptors.response.use( + (response) => + { + return response; + }, + async (error) => + { + return await Promise.reject(error); + } +); diff --git a/code/ts-practice/tsconfig.json b/code/ts-practice/tsconfig.json index 25a7801..8fd4b1a 100644 --- a/code/ts-practice/tsconfig.json +++ b/code/ts-practice/tsconfig.json @@ -11,11 +11,14 @@ "compilerOptions": { "strict": true, "target": "ESNext", - "module": "CommonJS", + "module": "ESNext", "esModuleInterop": true, + "moduleResolution": "nodenext", "lib": [ "ESNext", + "DOM", ], + "outDir": "./dist", "baseUrl": "./", "paths": { "@/*": [